Matlab 为什么这些是嵌套for循环的输出?
代码如下所示:Matlab 为什么这些是嵌套for循环的输出?,matlab,loops,for-loop,output,nested-loops,Matlab,Loops,For Loop,Output,Nested Loops,代码如下所示: a = [1, 8, -1, -9]; b = [-5, 8, 1, -6, 7, 9]; for i=1:numel(a) c(i) = 0; for k = i : numel(a) c(i) = c(i) + a(k) + b(k); end end fprintf('%7.2f\n', c) 这些是相应的输出,请解释原因: -3.00 (2 blank spaces in front) 1.00
a = [1, 8, -1, -9];
b = [-5, 8, 1, -6, 7, 9];
for i=1:numel(a)
c(i) = 0;
for k = i : numel(a)
c(i) = c(i) + a(k) + b(k);
end
end
fprintf('%7.2f\n', c)
这些是相应的输出,请解释原因:
-3.00 (2 blank spaces in front)
1.00 (3 blank spaces in front)
-15.00 (1 blank space in front)
-15.00 (1 blank space in front)
格式字符串“%7.2f\n”中的“7”指定的最小宽度为。。。7.默认行为是右对齐的(并且在格式字符串中没有更改),因此通过在左侧填充空格来实现7个字符的最小宽度。当使用固定宽度字体时,这种格式字符串通常用于在数字列中实现对齐条目
这是一个事实上的用户界面标准,垂直堆叠的数字应在小数点处对齐(也应对齐到虚拟小数点:即使不显示该点,也应对齐该点的位置)。对一个人来说,浏览列表并理解条目的相对大小更容易。解释输出是你的家庭作业吗?您希望代码有什么输出?在MATLAB命令提示符下键入
doc fprintf
。或者找一本关于fprintf
格式说明符的教程。获取这些输出是我的家庭作业,我只是不知道怎么做。我得到了不同的数字@JimHawkinsWell如果您运行代码,只要它给出准确的输出。这是一个非常简单的算法,你甚至可以手工计算。