【问题标题】:Why are these the outputs of my nested for loop?为什么这些是我的嵌套 for 循环的输出?
【发布时间】:2017-03-29 00:19:52
【问题描述】:

代码如下:

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)

【问题讨论】:

  • 解释输出是你的功课吗?您期望代码的输出是什么?
  • 在 MATLAB 命令提示符下键入 doc fprintf。或者查看here 获取有关fprintf 格式说明符的教程。
  • 获得这些输出是我的功课,我只是不知道如何。我得到不同的数字。 @吉姆霍金斯
  • 好吧,如果你运行代码,只要它给出了这些输出。这是一个非常简单的算法,您甚至可以手动进行计算。

标签: matlab loops for-loop output nested-loops


【解决方案1】:

格式字符串 '%7.2f\n' 中的 "7" 指定最小宽度... 7. 默认行为是右对齐(并且在格式字符串中没有更改),因此最小宽度通过在左侧填充空格来实现 7 个字符。当使用固定宽度的字体时,这种格式字符串通常用于在一列数字中实现对齐的条目。

垂直堆叠的数字应在小数点对齐(也与虚拟小数点对齐:即使不显示该点也要对齐该点所在的位置)是否是事实上的用户界面标准。人类更容易浏览列表并了解条目的相对大小。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-03-30
    • 1970-01-01
    • 2017-08-19
    • 2011-05-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多