试图理解这段代码:
A = [1 2 3]
T = A(:,1:end);
fprintf('\nvalues ', T);
A创建尺寸为1 x 3的矩阵
当我运行此代码时,会打印出来:
A =
1 2 3
为什么T不会被隐式评估并打印到屏幕上?
我不熟悉这种语法:A(:,1:end);
这是选择Matrix的第一列并循环吗?
答案 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)
。