使用fprintf定义formatspec以导出单元格数组

时间:2015-04-11 18:02:14

标签: matlab format-specifiers

我想使用循环将几个字符串的单元格数组导出到文本文件,其方式与下面链接中说明的非常类似:

http://www.mathworks.com/examples/matlab/1107-export-cell-array-to-text-file

唯一的区别是每个数组都有不同数量的列,我不知道如何告诉formatspec在循环的每次迭代中为每个数组创建该数量的列。

我需要一个告诉

的命令
if myarray has 2 columns
formatSpec = '%s %s';
else if myarray has 3 columns
formatSpec = '%s %s %s\n';
else
...

我尝试将formatspec设置为10列,因为数组不包含更多列,但输出文件不是按行组织的。

先谢谢你的帮助,

1 个答案:

答案 0 :(得分:0)

这样的事情:

%// Get number of columns
NumCol = size(myarray,2)

%// Define basic format spec to be repeated
baseString = ['%s'];

%// Generate actual formatSpec to be used
formatSpec = repmat(baseString,1,NumCol)

%// Add \n at the end
out = fprintf([formatSpec '\n'],myarray)

如果您愿意,可以对其进行修改并将其包含在if-elseswitch/case块中,但这应该足够通用。