MATLAB 中方括号的使用

Adr*_*aan 4 matlab vector square-bracket

在 MATLAB 中,您可以轻松地创建一个整数数组

N = 100; % Number of points
A = 1:N; % row vector of 1,2,3,..., 100
Run Code Online (Sandbox Code Playgroud)

如果我想要一个列向量而不是一个行向量,我可以用

A = [1:N].';
Run Code Online (Sandbox Code Playgroud)

现在,MATLAB 警告我

Use of brackets [] is unnecessary. Use parentheses to group if necessary.
Run Code Online (Sandbox Code Playgroud)

好吧,它们不是不必要的,因为1:N.' 创建了一个行向量,因为只有标量N被转置,而不是整个数组。

我当然可以在该行、该文件或所有文件中取消显示此消息,但是为什么 MATLAB 首先会抛出此警告,因为在这种情况下我似乎不能没有这些括号?

事实证明,很大一部分混淆源于 The MathWorks 对美式英语的使用,因为其他英语世界使用术语括号for()和术语方括号for []。参见维基百科

Sol*_*tad 5

正如 MATLAB 警告您的那样:Use parentheses to group if necessary. 在您的情况下,这是必要的。您想.'应用于 1:N,因此请使用括号()。方括号[]用于收集其中的元素,但1:N已收集

A=(1:N).';
Run Code Online (Sandbox Code Playgroud)