我有一个元胞数组,需要根据特定格式打印在 .txt 文件中。我尝试过一些在线帮助(包括matlabcentraldlmcell
但即便如此也没有给我想要的答案。分隔符是\t。
cellarray = { ...
'AAPL' '2/20/2011' 100.5
'MSFT' '2/15/2011' 43.4551
} ;
输出应位于具有以下格式的 .txt 文件中:(使用制表符分隔符)
"AAPL" "2/20/2011" 100.5
"MSFT" "2/15/2011" 43.4551
该单元格的行数最少为 8000 行,最多为 15000 行。没有行会有空列。矢量化解决方案可能吗?将感谢您的帮助。
以下内容适用于您的示例:
C = cellarray.';
fid = fopen('file.dlm', 'wt');
fprintf(fid, '"%s"\t"%s"\t%g\n', C{:});
fclose(fid);
MATLAB 会重复使用格式化字符串,直到用完输入为止。原则上,您可以首先构造格式化字符串:
fstr = '';
for ic = 1:size(cellarray,2)
switch class(cellarray{1,ic})
case 'char'
fstr = [fstr '"%s"'];
otherwise
% Assume numeric
fstr = [fstr '%g'];
end
if ic < size(cellarray,2), fstr = [fstr '\t']; else fstr = [fstr '\n']; end
end
Then
C = cellarray.';
fid = fopen('file.dlm', 'wt');
fprintf(fid, fstr, C{:});
fclose(fid);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)