這是一個很難回答的問題。我是Matlab新手,看過以下聲明,但我看不出它有什麼作用。什麼doe x = x(:)做?x = x(:)是什麼意思在matlab中,其中x是一個向量?
11
A
回答
13
1
x(:)
重塑你的矩陣。
由此,如果基質是
1 2 3
5 6 7
8 9 10
主叫x=x(:)
套x
到
1
5
8
2
6
9
3
7
10
2
X(:)變換數組的列向量。
+3
,它實際上並不難[google](https://www.google.com/search?q=matlab+colon+operator+vector)。 – voidengine 2012-01-15 02:39:18
2
此語法通常用於確保x
是一個列向量:
x = x(:)
同樣,這條線可確保x
是行向量
x = x(:)'
2
正如其他已經說過,x(:)專門將x轉換爲向量,列向量。重點在於,它使您的代碼對於提供行向量的用戶在我的事故中健壯。例如,
x = 1:5;
創造了一個行向量。一些操作將需要列向量。由於x(:)對已經是列向量的向量沒有任何作用,所以這是一種編寫健壯,穩定的代碼的方式。
當然,如果x是一個3x4矩陣,它仍然會將x轉換爲長度爲12的列向量,所以最好的代碼需要測試類似的東西,如果這是一個問題。
1
如果x是一個矩陣,如下所示:3×3矩陣,
x=[1,2,3;4,5,6;7,8,9];
x=x(:);
語句x = X(:)列出了矩陣的列向量。 輸出將是
1
2
3
4
5
6
7
8
9
這同樣是當x是一個行向量時得到的結果。
所以一般來說,x(:)列出x的元素作爲列向量。
1
該運算符告訴matlab嘗試轉換數據類型。
例如:
這兩種數據類型設置爲不同類型:
>> foo = uint8(0);
>> bar = double(0);
檢查數據類型與 「衛生組織」 命令:
>> whos foo bar
Name Size Bytes Class Attributes
bar 1x1 8 double
foo 1x1 1 uint8
分配UINT8到雙用(:)運營商:
>> bar(:) = foo;
和它仍然是一個雙
>> whos foo bar
Name Size Bytes Class Attributes
bar 1x1 8 double
foo 1x1 1 uint8
分配雙用unit8沒有(:)操作:
>> bar = foo;
,並變成一個UINT8數據類型:
>> whos foo bar
Name Size Bytes Class Attributes
bar 1x1 8 uint8
foo 1x1 1 uint8
相關問題
- 1. 「if(x){...}」是什麼意思?其中x是C++中的整數?
- 2. 在MATLAB中,@(x)myfun(x,F_index)是什麼意思?
- 3. y == x是什麼意思在MATLAB?
- 4. 「declare + x」是什麼意思vs「declare -x」?
- 5. (x:_)和[x:_]是什麼意思?
- 6. (x << 13)^ x是什麼意思?
- 7. 什麼意思是$ x(「// *」);
- 8. x [item]是什麼意思?
- 9. 'char x []'是什麼意思?
- 10. 「x == 01」是什麼意思?
- 11. 在numpy中X [:,:,:,i]是什麼意思?
- 12. 這個宏是什麼意思? #define UNUSED(x)((x)=(x))
- 13. C宏中的#x是什麼意思?
- 14. 'x = x + 2'是什麼意思?在這段代碼中?
- 15. 這個(X,null)是什麼意思?
- 16. 宏字符串:#define __T(x)x是什麼意思?和__T(#x)?
- 17. Haskell中的x <-x是什麼意思?
- 18. CSS中的[x * =「y」]和[x^=「y」]是什麼意思?
- 19. 什麼是「hrtimer:interrupt x ns」是什麼意思?在dmesg中看到
- 20. F# - 什麼與...匹配:? X as x是什麼意思?
- 21. 這是什麼意思*(int *)&x當typecasting?
- 22. (char *)x或(void *)z是什麼意思?
- 23. C++什麼是'int x =(anyInt1,anyInt2);'意思?
- 24. 「str」+ x +「str」是什麼意思?
- 25. 這是什麼意思「var x = function function_name(){}」?
- 26. 宏_bnd(X,bnd)是什麼意思?
- 27. 「isset($ x)?$ y:$ z」是什麼意思?
- 28. x = tf.placeholder(tf.float32,[None,784])是什麼意思?
- 29. 「本地n = $ {x ## * wlan}」是什麼意思?
- 30. x%2 == 0是什麼意思?
待辦事項你知道它是否做了一次重塑(所以將複製寫入)或者強制複製(即使x已經是一列)? – robince 2012-01-17 09:29:17
@robince:好問題。我想認爲'x(:)'完全等同於'reshape(x,[],1)'。但我不確定(我不確定這是否記錄在任何地方)。我想可以試着通過分析來弄明白。 – 2012-01-17 10:11:56
是的,我檢查,似乎有正常的複製寫semantis(2011b)。我不知道爲什麼我有這個想法強制要求複製 - 也許過去有一段時間。 – robince 2012-01-18 10:39:07