2

我有以下数据:

a=[3 1 6]';
b=[2 5 2]';
c={'ab' 'bc' 'cd'}';

我现在想制作一个看起来像这样的文件(分隔符是制表符):

ab    3    2
bc    1    5 
cd    6    2

我的解决方案(带循环)是:

a=[3 1 6]';
b=[2 5 2]';
c={'ab' 'bc' 'cd'}';
c=cell2mat(c);
fid=fopen('filename','w');
for i=1:numel(b)

    fprintf(fid,'%s\t%u\t%u\n',c(i,:),a(i),b(i));

end

fclose(fid);

是否有可能没有循环和/或直接在文件中写入元胞数组的可能性?

谢谢。

4

1 回答 1

4

这个怎么样:

%A cell array holding all data
%    (Note transpose)
data = cat(2, c, num2cell(a), num2cell(b))';

将数据写入文件

fid = fopen('example.txt', 'w');
fprintf(fid, '%s\t%u\t%u\n', data{:});
fclose(fid);

如果您的数据集变大,这将浪费内存(最好将其保留为单独的变量和循环),但似乎有效。

于 2012-04-09T18:37:55.530 回答