我有不同长度和编号的单元格数组A和B。
A={1:0.5:5;1:0.5:2};
B={1:0.5:6;1:0.5:9};
C= [A;B];
我想把这些细胞阵列组合成一个细胞阵列C,然后看起来像这样:
C =
4×1 cell array
{1×9 double}
{1×3 double}
{1×11 double}
{1×17 double}
然后,我想把它保存到一个文本文件中,应该是这样的:
1.0000 1.5000 2.0000 2.5000 3.0000 3.5000 4.0000 4.5000 5.0000
1.0000 1.5000 2.0000
1.0000 1.5000 2.0000 2.5000 3.0000 3.5000 4.0000 4.5000 5.0000 5.5000 6.0000
1.0000 1.5000 2.0000 2.5000 3.0000 3.5000 4.0000 4.5000 5.0000 5.5000 6.0000 6.5000 7.0000 7.5000 8.0000 8.5000 9.0000
到目前为止,我只找到了文本或相同大小数组的代码。这是我的尝试,但不起作用:
fid = open('filename.txt', 'wt');
fprintf(fid, '%f',C{:})
close(fid)
我认为问题可能出在您为fprintf
指定的格式上,因为我认为只使用'%f'
会在每行打印一个数字。
这样做的一种方法是:
fid = fopen('filename.txt', 'wt');
for i = 1:length(C)
fmt = repmat('%f ',size(C{i})); % this only adds one whitespace in between numbers
fmt = [fmt,'n']; % remember to add a new line
fprintf(fid,fmt,C{i});
end
fclose(fid);