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=='未参与' 展开
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=='未参与' 展开
展开全部
字符串不宜直接用等号判断相等,因为:
1、要判断相等的两个字符串长度未必相同,而判断相等是按照矩阵运算规则,要求二者或者长度相同,或者其中一个长度为一(即标量),否则就会出现维数不匹配的错误。你现在的就是这种情况。
2、如果二者长度相等或其中一个为标量,返回的结果会是一个数组。把这个数组作为条件语句if的条件是可以的(因为if语句的条件表达式如果是数组,则仅当数组所有元素均为真时条件才成立,这刚好和if的本意相同),但如果用在预期结果为一个标量逻辑值的其它场合则会出问题。
建议:
改用strcmp(或isequal)函数:strcmp(node(i).status,'未参与')
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询