matlab中函数问题,急急急

function[k,maxhop,sum]=Maxhop(minhop,n,node,hopnum)fori=1:1:niminhop(i).numnode(i).st... function [k,maxhop,sum]=Maxhop(minhop,n,node,hopnum)
for i=1:1:n
i
minhop(i).num
node(i).status
if minhop(i).num==hopnum(1,1) & node(i).status=='未参与'
maxhop=minhop(i).id
break;
end
end
这么一段代码
我在主函数调用的时候,到‘参与’的时候报错 是为什么呢
i =

29

ans =

9

ans =

参与

??? Error using ==> eq
Array dimensions must match for binary array op.

Error in ==> Maxhop at 14
if minhop(i).num==hopnum(1,1) & node(i).status=='未参与'
展开
 我来答
tianxiawulang
推荐于2016-03-07 · TA获得超过2.7万个赞
知道大有可为答主
回答量:4732
采纳率:89%
帮助的人:2683万
展开全部

字符串不宜直接用等号判断相等,因为:

1、要判断相等的两个字符串长度未必相同,而判断相等是按照矩阵运算规则,要求二者或者长度相同,或者其中一个长度为一(即标量),否则就会出现维数不匹配的错误。你现在的就是这种情况。

2、如果二者长度相等或其中一个为标量,返回的结果会是一个数组。把这个数组作为条件语句if的条件是可以的(因为if语句的条件表达式如果是数组,则仅当数组所有元素均为真时条件才成立,这刚好和if的本意相同),但如果用在预期结果为一个标量逻辑值的其它场合则会出问题。

 

建议:

改用strcmp(或isequal)函数:strcmp(node(i).status,'未参与')

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式