刚接触matlab,自己编的程序错在哪里了?为什么会出现?Subscripted assignment dimensio
来源:学生作业帮 编辑:百度作业网作业帮 分类:综合作业 时间:2024/08/18 02:51:22
刚接触matlab,自己编的程序错在哪里了?为什么会出现?Subscripted assignment dimension mismatch.
这是给遗传算法工具箱GUI编的适应度函数,如下
function Z=effect(a)
c=0.45;
T=25;
e=0.07;
t=10;
z=0.3;
b=3.14/6;
D0=10;
z=0.5;
u0=6.7;
k=0.3;
Cp=0.3;
rou=1.009;
Da=D0*((2-z)/(2*(1-z)))^0.5;
l=Da/(1-k);
m=floor(10^3/l);
A=round(rand(m));
a=reshape(A,1,m*m);
[row,col]=find(A==1) ;
X=cos(b)*col+sin(b)*(m-row+1);
Y=sin(b)*col-cos(b)*(m-row+1);
B=[X,Y];
S=sortrows(B,1);
Xt=S(:,1);
Yt=S(:,2);
r=size(Xt,1);
N=r;
ct=c*N*(2+exp(-0.00174*N^2))/3*(1+T*e);
u(r)=u0;
for i=r-1:-1:1;
j=r;
for j=r:-1:i+1;
D(i)=Da*(1+2*k*(Xt(j)-Xt(i)));
if Xt(j)==Xt(i)
v(i,j)=u0;
elseif Yt(i)=Yt(j)-D(i)/2
v(i,j)=u(j)*(1-a*Da^2/D(i)^2);
else
v(i,j)=u0;
end
SUM=0;
for su=i+1:r;
SU=(1-v(i,su)/u0)^2;
SUM=SUM+SU;
end
end
u(i)=u0*(1-sqrt(SUM));
end
p=0.5*rou*u.^3*Cp;
pt=p*ones(r,1);
wt=pt*t;
Z=ct/wt;
把第一行去掉后在命令窗输入结果就出现了Subscripted assignment dimension mismatch.,但真的没找到问题在哪,
这是给遗传算法工具箱GUI编的适应度函数,如下
function Z=effect(a)
c=0.45;
T=25;
e=0.07;
t=10;
z=0.3;
b=3.14/6;
D0=10;
z=0.5;
u0=6.7;
k=0.3;
Cp=0.3;
rou=1.009;
Da=D0*((2-z)/(2*(1-z)))^0.5;
l=Da/(1-k);
m=floor(10^3/l);
A=round(rand(m));
a=reshape(A,1,m*m);
[row,col]=find(A==1) ;
X=cos(b)*col+sin(b)*(m-row+1);
Y=sin(b)*col-cos(b)*(m-row+1);
B=[X,Y];
S=sortrows(B,1);
Xt=S(:,1);
Yt=S(:,2);
r=size(Xt,1);
N=r;
ct=c*N*(2+exp(-0.00174*N^2))/3*(1+T*e);
u(r)=u0;
for i=r-1:-1:1;
j=r;
for j=r:-1:i+1;
D(i)=Da*(1+2*k*(Xt(j)-Xt(i)));
if Xt(j)==Xt(i)
v(i,j)=u0;
elseif Yt(i)=Yt(j)-D(i)/2
v(i,j)=u(j)*(1-a*Da^2/D(i)^2);
else
v(i,j)=u0;
end
SUM=0;
for su=i+1:r;
SU=(1-v(i,su)/u0)^2;
SUM=SUM+SU;
end
end
u(i)=u0*(1-sqrt(SUM));
end
p=0.5*rou*u.^3*Cp;
pt=p*ones(r,1);
wt=pt*t;
Z=ct/wt;
把第一行去掉后在命令窗输入结果就出现了Subscripted assignment dimension mismatch.,但真的没找到问题在哪,
![刚接触matlab,自己编的程序错在哪里了?为什么会出现?Subscripted assignment dimensio](/uploads/image/z/16679506-58-6.jpg?t=%E5%88%9A%E6%8E%A5%E8%A7%A6matlab%2C%E8%87%AA%E5%B7%B1%E7%BC%96%E7%9A%84%E7%A8%8B%E5%BA%8F%E9%94%99%E5%9C%A8%E5%93%AA%E9%87%8C%E4%BA%86%3F%E4%B8%BA%E4%BB%80%E4%B9%88%E4%BC%9A%E5%87%BA%E7%8E%B0%3FSubscripted+assignment+dimensio)
v(i,j)=u(j)*(1-a*Da^2./D(i)^2);
a 是个向量对吧. 维度对不上. 37行
再问: 真的是,a改为z,但还有一个问题,这个函数我是想用来作为遗传算法工具箱的适应度函数,但是变量数设为3249后出现了 GA running. Error using ==> ga Too many output arguments. 是怎么回事,求解
a 是个向量对吧. 维度对不上. 37行
再问: 真的是,a改为z,但还有一个问题,这个函数我是想用来作为遗传算法工具箱的适应度函数,但是变量数设为3249后出现了 GA running. Error using ==> ga Too many output arguments. 是怎么回事,求解
小弟刚学习matlab,编了个程序,但是不知道为什么错误在哪里,
请问在matlab中怎么用一个变量来表示另一个变量?我编的程序如下,哪里错了?
求大神帮我看看matlab我编的程序错在哪里,怎么修改?
这个简单的matlab程序错在哪里了?
在运行matlab为什么会出现?In an assignment A(I) = B,the number of elem
matlab程序出现了错误,不知道哪里出错了
紧急,谁知道这个matlab优化程序错在哪里了?
我想编一个C语言程序,可以将54321顺序倒过来变成12345,下面是我自己编的,不知道错在哪里,
请问一下这个matlab程序的syms哪里错了
matlab 运行下面的程序出现一些错误,请帮忙看看错误在哪里,谢谢.
matlab 这个程序哪里错了
matlab请问这个程序哪里错了