matlab乘号的运算符和使用不正确,MATLAB:计算不正确...用户错误?

在这种情况下,好的代码格式是你的朋友。使用省略号(即...,line continuation symbol)创建一个多行语句可以有很大的帮助...

看起来你在错误的地方有一个括号。您的代码看起来是这样的:

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));

编辑:

此外,Darren mentions in his answer,你可能将不得不使用逐元素乘法运算符.*而不是矩阵乘法运算符*。算术运算符的解释可以在here找到。

此外,您的计算可以大大通过使用函数SUM,像这样向量化它简化为:

result = sum((1-EU_P2par3(:,1:7)).*US_P2par3(:,1:7),2);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值