フィルターのクリア

print elements of cell array to file

1 回表示 (過去 30 日間)
mohan
mohan 2013 年 4 月 3 日
Hi there,
I have the following cell array.
f={[1;2;3;4] [5;6;7;8;9;10;11] [12;13;14;15;16;17;18;19;20;21;22;23]}
I want the output to be written to a file and it should look like....
set1
1, 2, 3, 4
set2
5, 6, 7, 8, 9
10, 11
set3
12, 13, 14, 15, 16
17, 18, 19, 20, 21
22, 23
as you can see the set number refers to the row number of cell array {f}. Also when printing the number to file, each line can have a maximum of 5 values so if you have more than 5, it continues from next line.
Thanks for your help in advance. Let me know if further clarification is needed.
Mohan

採用された回答

Sathish Kumar
Sathish Kumar 2013 年 4 月 3 日
Hai, try the one below....any doubts on the steps just comment on it....
f={[1;2;3;4] [5;6;7;8;9;10;11] [12;13;14;15;16;17;18;19;20;21;22;23]};
s=size(f,2);
myfile=fopen('filename.txt','w');
for i=1:3
a=cell2mat(f(i));
fprintf(myfile,'set%d\n',i);
sa=size(a,1);
for j=1:sa
fprintf(myfile,'%d ',a(j));
if mod(j,5)==0
fprintf(myfile,'\n');
end
fprintf(myfile,'\n');
end
fclose(myfile);
end
  3 件のコメント
mohan
mohan 2013 年 4 月 3 日
Hi
I got it to work by modifying your code as shown below. But I'm struggling to get it to write only 5 variables on a line. Also this modified code prints a comma even for the last variable as well, which is not required.
f={[1;2;3;4] [5;6;7;8;9;10;11] [12;13;14;15;16;17;18;19;20;21;22;23]};
s=size(f,2);
fileID=fopen('filename.txt','w');
for i=1:3
a=cell2mat(f(i));
fprintf(fileID,'set%d\n',i);
sa=size(a,1);
% for j=1:sa
fprintf(fileID,'%d, ',f{i});
% if mod(j,5)==0
% fprintf(fileID,'\n');
% end
fprintf(fileID,'\n');
% end
end
fclose(fileID);
Mohan
mohan
mohan 2013 年 4 月 4 日
here is the correct code for anyone interested.....
f={[1;2;3;4] [5;6;7;8;9;10;11] [12;13;14;15;16;17;18;19;20;21;22;23]};
s=size(f,2);
fileID=fopen('filename.txt','w');
for i=1:s
a=cell2mat(f(i));
fprintf(fileID,'set%d\n',i);
sa=size(a,1);
for j=1:sa
if (j ~= sa)
fprintf(fileID,'%d,',a(j));
else
fprintf(fileID,'%d',a(j));
end
if mod(j,5)==0
fprintf(fileID,'\n');
end
end
fprintf(fileID,'\n');
end
fclose(fileID);

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangePrinting and Saving についてさらに検索

製品

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by