错误:() - 索引必须出现在索引表达式的最后

时间:2013-07-13 16:07:43

标签: matlab

我正在尝试评估以下表达式:

 (-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.

我想检查一下我是否有简化权,并且需要对这样的表达式进行评估。

2 个答案:

答案 0 :(得分: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),它已经是索引表达式。

答案 1 :(得分:2)

看起来您的矩阵b是二维的,但您的表达式包含b(2,l,1),其中有三个下标。

原始公式中没有任何l

enter image description here