В таких случаях хорошее форматирование кода - ваш друг. Использование многоточия (т.е. ...
, символ продолжения строки ) для создания многострочного оператора может очень помочь ...
Похоже, у вас не в круглых скобках. Ваш код выглядит так:
result = ((1-EU_P2par3(:,1))*US_P2par3(:,1))+...
((1-EU_P2par3(:,2))*US_P2par3(:,2))+...
((1-EU_P2par3(:,3))*US_P2par3(:,3))+...
((1-EU_P2par3(:,4))*US_P2par3(:,4))+...
((1-EU_P2par3(:,5))*US_P2par3(:,5))+...
((1-EU_P2par3(:,6)*US_P2par3(:,6)))+... %# Notice something here?
((1-EU_P2par3(:,7))*US_P2par3(:,7));
И вы, вероятно, хотите это:
result = ((1-EU_P2par3(:,1))*US_P2par3(:,1))+...
((1-EU_P2par3(:,2))*US_P2par3(:,2))+...
((1-EU_P2par3(:,3))*US_P2par3(:,3))+...
((1-EU_P2par3(:,4))*US_P2par3(:,4))+...
((1-EU_P2par3(:,5))*US_P2par3(:,5))+...
((1-EU_P2par3(:,6))*US_P2par3(:,6))+... %# Notice the change?
((1-EU_P2par3(:,7))*US_P2par3(:,7));
EDIT:
Кроме того, как упоминает Даррен в своем ответе , вам, вероятно, придется использовать оператор умножения элементов .*
вместо оператора умножения матриц *
. Объяснения арифметических операторов можно найти здесь .
Кроме того, ваш расчет можно значительно упростить, векторизовав его с помощью функции SUM , например:
result = sum((1-EU_P2par3(:,1:7)).*US_P2par3(:,1:7),2);