[英]What is the difference between 5 and [5] in MATLAB?
它们似乎完全一样,如:
>> v1 = [5];
>> v2 = 5;
>> isequal(v1, v2)
ans =
1
>> [5] * [1,2,3]
ans =
5 10 15
>> v1(1)
ans =
5
>> v2(1)
ans =
5
有什么区别我应该知道吗?
谢谢。
我应该注意哪些不同之处?
没有
虽然没有显着差异,但存在差异。
v1=5;
正在创建一个名为v1
的变量,其值为5。
v1=[5];
定义一个值为5的矩阵/标量; 然后它将该矩阵与任何东西连接起来 - 连接是由方括号执行的操作,这就是为什么你需要它们来定义[1,2,3]
- 然后将结果分配给变量v1
。 因此,使用方括号可执行其他操作。
这就是为什么如果你在编辑器中编写代码,你会收到一条m-lint消息
不需要使用括号[]。 如果需要,使用括号进行分组。
[5]
和5
之间没有区别。 但一般来说,表达式[f]
和f
之间可能存在差异,其中f
是某种表达式。 这是一个例子:
c = {10,20,30,40,50,60}; x = c{1:3} y = [c{1:3}]
这里, c
是一个单元格数组,因此操作c{1:3}
将c
1到3位的所有对象作为逗号分隔列表返回,换句话说,它返回10,20,30
。 它不返回数组[10,20,30]
。 因此,命令x = c{1:3}
相当于x=10,20,30
,这相当于将x
赋值为10
,然后对文字20
和30
执行任何操作。 另一方面,命令y = [c{1:3}]
将括号[]
之间的逗号分隔列表分组,因此它等于y=[10,20,30]
。 总之, x
将具有值10
而y
将具有值[10,20,30]
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.