2013-07-13 31 views
2

我試圖評估以下表達式:錯誤:()-indexing必須在索引表達式最後出現

(-a(3)*(4*b(1,1)*b(2,2)-b(1,2)*b(2,1))+b(3,2)*(2*b(1,1)*a(2)+b(1,2)*b(2,1)))/(2*b(3,3)*(4*b(1,1)*b(2,2)-b(1,2)*b(2,l,1))-b(3,2)(2*b(1,1)*b(2,3)-b(1,2)*b(2,1))) 

它是表達(膠乳):

$\left(\frac{-a_3 (4\beta_{11}\beta_{22}-\beta_{12}\beta_{21}) +\beta_{32}(2\beta_{11}a_2+\beta_{12}\beta_{21})} 
     {2\beta_{33} (4\beta_{11}\beta_{22}-\beta_{12}\beta_{21}) -\beta_{32}(2\beta_{11}\beta_{23} - \beta_{12}\beta_{21})}\right)$ 

Matlab的保持抱怨:

Error:()-indexing must appear last in an index expression. 

我想檢查我是否有簡化權,並需要這樣的表達來評估d。

+1

使用一些臨時變量,不要試圖在一行中做所有的事情。 –

回答

2

看起來您的矩陣b是二維的,但您的表達式包含b(2,l,1),它有三個下標。

原公式中沒有任何l

enter image description here

+0

嗨本,這是一個有效的點,但即使糾正錯字,相同的錯誤信息繼續抽水:我用「(-a(3)*(4 * b(1,1)* b(2,2) -b(1,2)* b(2,1))+ b(3,2)*(2 * b(1,1)* A(2)+ b(1,2)* b(2,1 )))/(2 * b(3,3)*(4 * b(1,1)* b(2,2)-B(1,2)* b(2,1)) - b(3, 2)(2 * b(1,1)* b(2,3)-b(1,2)* b(2,1)))「 – llinfeng

+0

@llinfeng:將其分成更小的部分 –

3

你必須b(3,2)後添加一個星號。目前,隨着b(3,2)啓動項是這樣的:

b(3,2)(2*b(1,1)*b(2,3)-b(1,2)*b(2,1)) 

您應將其更改爲

b(3,2)*(2*b(1,1)*b(2,3)-b(1,2)*b(2,1)) 

的問題是,Matlab的解釋,作爲索引b(3,2)這已經是一個索引表達式。

相關問題