了解评估和环
问题描述:
试图了解此代码:了解评估和环
A = [1 2 3]
T = A(:,1:end);
fprintf('\nvalues ', T);
A创建尺寸1的矩阵X 3
当运行该代码,这被打印:
A =
1 2 3
为什么T不是隐式评估并打印到屏幕上?
我不熟悉这个语法:A(:,1:end);
这是选择矩阵的第一列和循环?
答
在屏幕“隐式”评估的代码行不是以;
结尾的代码行。分号运算符抑制该行结果的打印。
在你的代码,
A = [1 2 3] % No semicolon -> print
T = A(:,1:end); % semicolon -> no print
的end
关键字无关的打印。它是一个非常有用的用于在Matlab中进行vetorized操作的关键字。
说A(:,1:end)
你告诉MATLAB“采取一切开始于1
直到矩阵end
的最后一列由列索引(:
)的值。基本上,在这种情况下,A
所有的值。你可以试试A(1:end,1:end)
并检查返回同样的事情。
对于一个更有用的例子,你可能希望所有的矩阵但第一行,那么你可以使用A(2:end,:)
。
一行代码,而不分号将该行的结果回显到命令窗口。它不会改变这条线的评估方式。使用分号可以在创建MATLAB表达式时不必在命令窗口中看到输出。另外,'T = A(:,1:end);'是相当多余的......它表示以访问所有行(第一维:':')的方式访问矩阵'A'和从第一列中获取所有列(到第二维:'1:end')。你可能只是说'T = A;'因为你基本上是复制整个矩阵。 – rayryeng