理解评估和循环

时间:2016-04-25 14:45:11

标签: matlab

试图理解这段代码:

A = [1 2 3]

T = A(:,1:end);

fprintf('\nvalues ', T);

A创建尺寸为1 x 3的矩阵

当我运行此代码时,会打印出来:

A =

     1     2     3

为什么T不会被隐式评估并打印到屏幕上?

我不熟悉这种语法:A(:,1:end);这是选择Matrix的第一列并循环吗?

1 个答案:

答案 0 :(得分:3)

在屏幕中评估的代码行"隐含地"是那些不以;结尾的人。分号运算符禁止打印该行的结果。

在您的代码中,

A = [1 2 3]   % No semicolon -> print

T = A(:,1:end); % semicolon -> no print

end关键字与打印无关。它是一个非常有用的关键字,可用于在Matlab中进行矢量化操作。

A(:,1:end)你在告诉MATLAB&#34;从<{1}}开始的列索引中获取所有值:),直到矩阵1的最后一列。基本上,在这种情况下,end的所有值。您可以尝试A并检查返回相同的内容。

对于一个更有用的示例,您可能希望所有矩阵是第一行,然后您将使用A(1:end,1:end)