MATLAB中方括号的使用
Usage of square brackets in MATLAB
在 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 首先抛出此警告,因为似乎我不能没有这些括号这种情况?
事实证明,很大一部分混淆源于 MathWorks 使用美式英语,因为其他英语世界使用术语 括号for ()
和 term 方括号 for []
。参见 Wikipedia
正如 MATLAB 警告您的那样:Use parentheses to group if necessary.
在你的情况下,这是必要的。您希望 .'
应用于 1:N,因此使用括号 ()
。
方括号[]
是收集里面的元素,但是1:N
已经收集了
A=(1:N).';
方括号用于声明数组。但是,构建 MATLAB 的语法使得 1:n
已经创建了一个数组。
[1:3]
将等同于 [[1 2 3]]
,这就是为什么 MATLAB 告诉您在这种情况下不需要方括号
这就是说,由于 operator precedence
,您肯定需要在转置之前用括号对数组声明进行分组
在 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 首先抛出此警告,因为似乎我不能没有这些括号这种情况?
事实证明,很大一部分混淆源于 MathWorks 使用美式英语,因为其他英语世界使用术语 括号for ()
和 term 方括号 for []
。参见 Wikipedia
正如 MATLAB 警告您的那样:Use parentheses to group if necessary.
在你的情况下,这是必要的。您希望 .'
应用于 1:N,因此使用括号 ()
。
方括号[]
是收集里面的元素,但是1:N
已经收集了
A=(1:N).';
方括号用于声明数组。但是,构建 MATLAB 的语法使得 1:n
已经创建了一个数组。
[1:3]
将等同于 [[1 2 3]]
,这就是为什么 MATLAB 告诉您在这种情况下不需要方括号
这就是说,由于 operator precedence
,您肯定需要在转置之前用括号对数组声明进行分组