Write the content of individual cells in a cell array to discrete text files in a specified directory

4 次查看(过去 30 天)
Hi
I have an nx1 cell array, M, containing 4x4 matrices in individual cells. For example:
M{1} =
0.9990 -0.0007 0.0010 0.0013
-0.0007 0.9999 -0.0001 0.0509
0.0010 -0.0001 0.9996 -0.0343
0 0 0 1.0000
I need to write the contents of each individual cell to a discrete text file with sequential names and a .dat extension (e.g. cam1.dat, cam2.dat etc) to a specified folder created previously:
mkdir('C:\transform', 'cameras1');
I can make a single file in the desired format using:
filename = 'C:\transform\cameras1\cams.dat';
fid = fopen(filename,'w');
fprintf(fid,'%-.8e %-.8e %-.8e %-.8e\r\n', transpose(M{1}));
fclose(fid);
But am unsure how to excecute this code iteratively for the entire contents of M.
Any help would be greatly appreciated.
Thomas

采纳的回答

Thomas Seers
Thomas Seers 2012-12-20
Thanks Jan
I have managed to get the code working using:
for k=1:size(M,1)
filename = ['C:\transform\cameras1\' 'cams' num2str(k) '.dat'];
fid = fopen(filename,'w');
fprintf(fid,'%-.8e %-.8e %-.8e %-.8e\r\n', transpose(M{k}));
fclose(fid);
end
The FAQ document was most useful. I will try to refer to it first in the future. I'm not sure of the etiquatte for accepting answers in this instance (feel free to advise): thank you nevertheless.
p.s. my 3 year old likes your avatar!

更多回答(1 个)

Jan
Jan 2012-12-20

类别

Help CenterFile Exchange 中查找有关 Whos 的更多信息

产品

Community Treasure Hunt

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

Start Hunting!

Translated by