【发布时间】:2014-11-25 08:15:36
【问题描述】:
在搜索了 mathworks 的网站和这里之后,我设法找到了应该用于将单元格数据保存到文本文件的代码......但我发现的每个变体都不起作用。这是我当前的代码(也是在这里和 mathworks 上出现最多的代码)-请帮助我弄清楚为什么它对我不起作用...:
第一次尝试:
array = cell(1,10);
for i=1:10
array{i} = 'someText';
end
fid = fopen('file.txt', 'wt');
fprintf(fid, '%s\n', array);
fclose(fid);
错误:
使用 fprintf 时出错 没有为“单元”输入定义函数。
saveToFile 中的错误(第 11 行) fprintf(fid, '%s\n', 数组);
所以我专门寻找一种对单元阵列有用的(可以在这里找到:http://www.mathworks.com/help/matlab/import_export/write-to-delimited-data-files.html)
第二次尝试:
array = cell(1,10);
for i=1:10
array{i} = 'someText';
end
fileID = fopen('celldata.dat','w');
[nrows,ncols] = size(array);
for row = 1:nrows
fprintf(fileID,'%s\n' ,array{row,:});
end
fclose(fileID);
错误:
使用 fprintf 时出错 没有为“单元”输入定义函数。
saveToFile 中的错误(第 12 行) fprintf(fileID,'%s\n' ,array{row,:});
我将避免您尝试其他一些失败的尝试.. 这些是我能找到的最好的.. 任何帮助将不胜感激! :)
【问题讨论】:
-
我将您的第二次尝试复制到 MATLAB 的命令窗口中,它运行良好!
-
您可能希望在第一次尝试中使用 'array{:}' 而不是 'array'
-
是的,如果您按照 Benoit 的建议进行操作,第一种方法也有效 =)
-
您检查过您使用的是哪个版本吗?
-
Ahhh - 我发现问题在于我使用的一些字符串数据显示为 [] (matlab 在几个地方显示 'ans = []' ,通常有一个字符串 'ans = 'someString') 所以我想我需要以某种方式将 [] 替换为字符串。