无法执行分配,因为左侧的索引与右侧的大小不兼容

  • 本文关键字:不兼容 索引 分配 因为 执行 matlab
  • 更新时间 :
  • 英文 :


当我给出四个lambda值时,它会给我一个错误,即无法执行赋值,因为左侧的索引与右侧的大小不兼容。但对于像36、38、40或42这样的单个值来说,这是可以的

R = [0.5:0.1:2.25];
Vs1= [120];
Vs2 = R.*Vs1;
H1=[5:5:25];
rho = [2000 2000];
lambda = [36 38 40 42];
for j=1:length(Vs2),
Vs = [Vs1 Vs2(j)];
for i=1:length(H1)
H2=30-H1(i);
d=[H1(i),H2];
Vs30(j,i)=Vs30_fun(d,Vs);

end
end


for j=1:length(Vs2),
Vs = [Vs1 Vs2(j)];Vp=2.*Vs;
for i=1:length(H1)
d=[H1(i) Inf];
VR(j,i)=lv_fun(d,Vs,Vp,rho,lambda);

end
end

M=VR<Vs30;
[m,n]=size(M);
VR=zeros(length(Vs2),length(H1));
for i=1:m
for j=1:n        
if M(i,j)==0
plot(H1(i),R(j), 'r*')
hold on
%                drawnow();
end
end
end
VR(j,i)=lv_fun(d,Vs,Vp,rho,lambda);

你没有初始化VR。我建议您先初始化变量,然后再初始化插件值。循环之前试试这个。

VR=zeros(length(Vs2),length(H1));

最新更新