在MATLAB中使用方括号

时间:2016-12-08 11:30:56

标签: matlab vector square-bracket

在MATLAB中,您可以使用

轻松创建整数数组
N = 100; % Number of points
A = 1:N; % row vector of 1,2,3,..., 100

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

来做
A = [1:N].';

现在,MATLAB警告我

Use of brackets [] is unnecessary. Use parentheses to group if necessary.

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

我当然可以在该行,该文件或所有文件中禁止此消息,但为什么MATLAB首先会抛出此警告,因为似乎我不能在没有这些括号的情况下执行此操作这个案子?

事实证明,混淆的很大一部分源于The MathWorks对美式英语的使用,因为其他英语世界使用术语括号来表示{{1和()的术语方括号。请参阅Wikipedia

2 个答案:

答案 0 :(得分:4)

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

A=(1:N).';

答案 1 :(得分:4)

方括号用于声明数组。但是,构建了MATLAB的语法,以便1:n已经创建了一个数组。

[1:3]将等同于[[1 2 3]],这就是为什么MATLAB告诉你在这种情况下不需要方括号

这就是说,由于operator precedence

,你需要在转置之前用括号对数组声明进行分组。