我的单元格数组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)
答案 0 :(得分:1)
我相信问题可能在于您为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);