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

Matlab 定义formatspec以使用fprintf导出单元格数组,matlab,format-specifiers,Matlab,Format Specifiers,我想使用循环将多个字符串单元格数组导出到文本文件中,方式与下面链接中介绍的非常类似: 唯一的区别是每个数组都有不同数量的列,我不知道如何告诉formatspec在循环的每次迭代中为每个数组创建相同数量的列 我需要一个命令告诉你 if myarray has 2 columns formatSpec = '%s %s'; else if myarray has 3 columns formatSpec = '%s %s %s\n'; else ... 我试图简单地将formatspec设置为1

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

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

我需要一个命令告诉你

if myarray has 2 columns
formatSpec = '%s %s';
else if myarray has 3 columns
formatSpec = '%s %s %s\n';
else
...
我试图简单地将formatspec设置为10列,因为数组包含的内容不超过10列,但是输出文件没有按行组织


提前感谢您的帮助,

这样的事情怎么样:

%// 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-else
switch/case
块中,但这应该足够一般。

那么@Gustavo我的答案对您有帮助吗?谢谢您的回答!我在定义格式时发现了一个错误。内联
baseString=['%s']
%以inline
formatSpec=repmat(baseString,1,NumCol-1)
inline
out=fprintf([formatSpec'%s\r\n'],myarray])的格式添加一个空格。
%。