运行算法后,我得到了单元格数组X中的输出,
>> X
X =
[5x1 double]
[5x1 double]
>> celldisp(X);
X{1} =
1
2
3
4
5
X{2} =
11
21
31
41
51
61
71
81
请注意,输出的尺寸不同。 X {1}的长度为5,而X {2}的长度为8
现在,我想将celldisp(X)
的此输出以下列格式写入txt文件:
output.txt的
1 2 3 4 5
11 21 31 41 51 61 71 81
怎么样,我可以这样做吗?是否有预定义的函数来实现此目标或者我是否需要编写自定义函数。有人可以帮我解决这个问题吗?
答案 0 :(得分:1)
简单地做
dlmwrite('output.txt',horzcat(X{:})','delimiter',' ');
对于更新的问题,单元格元素中数组的长度不一样,我建议你使用循环:
fid = fopen('output.txt', 'w');
for idx = 1:numel(X)
fprintf(fid,[repmat('%d ', 1, numel(X{idx})) '\n'], X{idx});
end
fclose(fid);
又一次编辑,这一次使它成为一个功能
function printCellArray(filename, cellarray)
fid = fopen(filename, 'w');
for idx = 1:numel(cellarray)
fprintf(fid,[repmat('%d ', 1, numel(cellarray{idx})) '\n'], cellarray{idx});
end
fclose(fid);
end