他們似乎是完全一樣的,如:MATLAB中的5和[5]有什麼區別?
>> 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
是否有任何differenceI應該知道的?
謝謝。
他們似乎是完全一樣的,如:MATLAB中的5和[5]有什麼區別?
>> 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
是否有任何differenceI應該知道的?
謝謝。
我應該知道有什麼區別嗎?
沒有
雖然沒有顯著差異,是有區別的。
v1=5;
被創建一個名爲v1
變量具有5.
v1=[5];
的值被限定爲5的值的矩陣/標量;那麼它將該矩陣與無連接 - 連接是由方括號執行的操作,因此您確實需要它們來定義[1,2,3]
- 然後將結果分配給變量v1
。因此使用方括號執行附加操作。
這就是爲什麼如果你在編輯器中編寫代碼,你會收到一個M-皮棉消息說
使用括號[]是不必要的。如果需要,請使用括號進行分組。
[5]
和5
之間沒有區別。但總的來說,表達式[f]
和f
之間可能存在差異,其中f
是一些表達式。下面是一個例子:
c = {10,20,30,40,50,60}; x = c{1:3} y = [c{1:3}]
這裏,c
是一個單元陣列,所以操作c{1:3}
返回的地方的所有對象1至c
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]
。