我正在尝试编写一个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)