matlab 帮忙看下哪有问题,怎么改,急用呀
??? Output argument "i1" (and maybe others) not assigned during call to "E:\matlab\matlab1\work\yh.m (yh)".
Error in ==> yh at 2
S4=0;
什么意思呀???
function [h,l]=sc
p=(fix(125*rand(1,14))*5+20)%20-650之间的5的倍数
l=fliplr(sort(p));
ll=l/2;
lll=ll.*ll;
h=(105625-lll).^0.5;
while h(1)<13
p=(fix(125*rand(1,14))*5+20)%20-650之间的5的倍数
l=fliplr(sort(p));
ll=l/2;
lll=ll.*ll;
h=(105625-lll).^0.5;
end
function [h,l]=hd
[x,l]=sc
y=[
1,-1,0,0,0,0,0,0,0,0,0,0,0,0;
0,1,-1,0,0,0,0,0,0,0,0,0,0,0;
0,0,1,-1,0,0,0,0,0,0,0,0,0,0;
0,0,0,1,-1,0,0,0,0,0,0,0,0,0;
0,0,0,0,1,-1,0,0,0,0,0,0,0,0;
0,0,0,0,0,1,-1,0,0,0,0,0,0,0;
0,0,0,0,0,0,1,-1,0,0,0,0,0,0;
0,0,0,0,0,0,0,1,-1,0,0,0,0,0;
0,0,0,0,0,0,0,0,1,-1,0,0,0,0;
0,0,0,0,0,0,0,0,0,1,-1,0,0,0;
0,0,0,0,0,0,0,0,0,0,1,-1,0,0;
0,0,0,0,0,0,0,0,0,0,0,1,-1,0;
0,0,0,0,0,0,0,0,0,0,0,0,1,-1;
0,0,0,0,0,0,0,0,0,0,0,0,0,1;
];
h=x*y;
function [i1,i2,g]=yh
S4=0;
t=0;
for i=1:12
for ii=i+1:13
for qq=1:1:10
[h,l]=hd
S1=h(1:i)*l(1:i)';
S2=h(i+1:ii)*(l(i+1:ii)');
S3=h(ii+1:14)*l(ii+1:14)';
if S3-S2==0
if S3-2*S1==0
t=t+1;
S=S1+S2+S3;
S1
S2
S3
S=S.*2.*0.97
i1(t,:)=[i,sum(h(1:i)),ii,sum(h(1:ii)),S];
if (S>S4)
S4=S;
i2=[i,sum(h(1:i)),ii,sum(h(1:ii)),S4];
end
end
end
end
end
end
g=S4./(105625.*pi);
[解决办法]
将for循环改成1,设个断点,跟踪一下
[解决办法]
输出没有赋值,查看函数调用地方。