Borrar filtros
Borrar filtros

print elements of cell array to file

1 visualización (últimos 30 días)
mohan
mohan el 3 de Abr. de 2013
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

Respuesta aceptada

Sathish Kumar
Sathish Kumar el 3 de Abr. de 2013
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 comentarios
mohan
mohan el 3 de Abr. de 2013
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 el 4 de Abr. de 2013
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);

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Printing and Saving en Help Center y File Exchange.

Productos

Community Treasure Hunt

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

Start Hunting!

Translated by