2013-05-02 77 views
-1

在MATLAB中,我可以很容易地得到一個矩陣的列主要爲了使用(:)操作如下元素的矢量...在MATLAB中,爲什麼我不能編寫轉置和冒號操作符?

EDU>> A 

A = 

    1  2 
    3  4 
    5  6 

EDU>> A(:) 

ans = 

    1 
    3 
    5 
    2 
    4 
    6 

不過,我想獲得的元素的矢量按行排列。所以我想我會在使用(:)之前轉置矩陣。但我得到這個錯誤...

EDU>> A'(:) 
A'(:) 
    | 
Error: Unbalanced or unexpected parenthesis or bracket. 

爲什麼不和'和(:)寫在這裏?我可以在2個步驟中完成,但我更願意更簡潔並避免額外的變量。

EDU>> B = A' 

B = 

    1  3  5 
    2  4  6 

EDU>> B(:) 

ans = 

    1 
    2 
    3 
    4 
    5 
    6 

爲什麼我不能通過編寫'和(:)來做到這一點?什麼是正確的方法來做到這一點?

感謝, 〜夾頭

+5

這基本上是[這個問題]的副本(http://stackoverflow.com/q/2724020/52738)。此外,[這個相關的問題](http://stackoverflow.com/q/3627107/52738)進一步說明索引操作符'()'不能遵循某些操作,除非你把它變成一個函數調用。 – gnovice 2013-05-02 17:46:42

+0

謝謝,我的主要問題是關於索引操作符的第二點。有趣的是,Octave似乎沒有受到這個問題的困擾。 – Chuck 2013-05-02 18:18:31

回答

3

使用重塑或許

reshape(A',prod(size(A)),1) 
+0

這有什麼問題? – 2013-05-02 18:57:29

+2

似乎對我好。對不起有人投票給你。 – Chuck 2013-05-02 19:00:02

+0

我將刪除我的帖子,與您的帖子相同,但較早。周圍有人不開心。如果答案不完全是他們想要的,他們爲什麼要輕易給人一個倒退。 – NKN 2013-05-02 19:08:52

相關問題