MATLAB中字符串的动态格式



我正在尝试编写一个MATLAB程序,该程序从用户那里获取要显示的行数,并因此打印出:

1
2 2
3 3 3

..所以

现在,我可以使用两个循环获得此输出,但是是否可以对循环进行相同的操作?具体来说,我想知道是否有一种方法可以将for循环的迭代值传递给sprintf/fprintf语句以类似于'%3D'的方式格式化字符串,以便sprintf/fprintf语句知道每行要打印多少个变量。希望那不是太混乱了。

谢谢!

shantanu。

您可以简单地创建一个阵列,每个阵列通行到适当的大小,例如:

fid=1; % Will print out to the stdout, but can replace this with the folder to write to
for x=1:3
   stuff=zeros(x,1)+x;
   fprintf(fid,'%s ',stuff)
   fprintf(fid,'n');
end

请注意,如果将数组传递给fprintf语句,它将仅重复直到数组完成。

尝试sprintf功能,这是文档。比您做的事情:

sprintf('something %[flag][width].[precision][conversion] %...', arg1, ...)

对于整数小数,您可以做:

sprintf('%d', integer)

最新更新