繁体   English   中英

MATLAB中5和[5]之间有什么区别?

[英]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 ,然后对文字2030执行任何操作。 另一方面,命令y = [c{1:3}]将括号[]之间的逗号分隔列表分组,因此它等于y=[10,20,30] 总之, x将具有值10y将具有值[10,20,30]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM