你的代码后面的循环中,判断语句太长了,没法看。你的意思是满足条件
找出符合条件的mm、nn、kk及对应的M、N、K值,是吧?
clear all;clc;
M=0:20;N=0:20;K=0:20;
for m=1:21;
for n=1:21;
for k=1:21;
if M(m)+N(n)+K(k)<=20
p(m+n+k)=20-M(m)-N(n)-K(k);
else
p(m+n+k)=0;
end
end
end
end
for mm=1:19;
for nn=1:19;
for kk=1:19;
if p(mm+nn+kk+3)*M(mm+1)>=p(mm+nn+kk+2)*M(mm)&...
p(mm+nn+kk+3)*M(mm+1)>=p(mm+nn+kk+4)*M(mm+2)&...
p (mm+nn+kk+3)*N(nn+1)>=p(mm+nn+kk+2)*N(nn)&...
p(mm+nn+kk+3)*N(nn+1)>=p(mm+nn+kk+4)*N(nn+2)&...
p(mm+nn+kk+3)*K(kk+1)>=p(mm+nn+kk+2)*K(kk)&...
p(mm+nn+kk+3)*K(kk+1)>=p(mm+nn+kk+4)*K(kk+2)
mm;nn;kk;
M(mm);N(nn);K(kk);
break;
else
continue;
end
end
end
end
你看你的语句,是
if xxxx
disp()
else
那就是没法满足这个if的条件……你这个条件太长了,可以用表达式分别表示每一个小的条件,要简洁很多。