2013-05-03 42 views
1

有一天,我發現了幾個地方下面的錯誤在我的MATLAB代碼力MATLAB做只是逗號作爲列分隔符

我想在我的MATLAB程序進入列向量

[a-b, 
c-d 
e-f] 

其中a,b,c,d,e,f是一些變量中的長表達式。

和我進入它在作爲

[ a -b ; 
    c -d ; 
    e -f] 

現在MATLAB解釋第二矩陣作爲一個3×2的矩陣,而不是一個列向量。 有什麼辦法/命令/函數強制MATLAB只使用逗號而不是任何空白字符作爲列分隔符矩陣?

+0

這實際上並不是一個錯誤 - 它是預期的行爲。我同意你的看法,但這並不好。 – 2013-05-03 23:17:10

回答

0

假設你有一段代碼在其中只希望有列向量和無基質,有一個相當快速的解決方案:

取代{space}+通過+

通過-

替換 {space}-

這樣做很安全,除非你在向量中有複雜的表達式,否則應該這樣做。

3

我不認爲有任何辦法強迫MATLAB爲不將空白這種方式,因爲它是解釋性語言,這樣做可能會影響一些內置的功能/第三方代碼。 但是,您可以使用圓括號對數據進行分組 - 即(a -b)仍然是矩陣的單個元素。

1

那麼你的第二個矩陣看起來像它打算作爲一個3x2的。不過,如果你不喜歡這樣它會再次列向量:

[a - b; 
c - d; 
e - f] 

這對我來說是a減去ba,負b之間的合理直觀的區別。

您也可以使用括號作爲伊利亞建議。