index must be a positive integer or logical.
2 次查看(过去 30 天)
显示 更早的评论
Hi I am using matlab for earthquake hazard analysis. i have a problem with my for loop and i cant find out whats the problem.
if true
for aa=Mmin:0.1:Mmax1
Mmean1=aa+0.05;
r1=sqrt(R1^(2)+Davg1^(2));
Freq1=NMmin1*(exp(-beta1*(aa-Mmin))-exp(-beta1*((aa+0.1)-Mmin)))/(1-exp(-beta1*(Mmax1-Mmin)));
loga1=log10(PGA);
logamean1=c1+c2*Mmean1+c3*log10(r1)+c4*r1;
lognormal1=1-normcdf(loga1,logamean1,sigma);
Ny1=Freq1*lognormal1;
if aa==Mmin;
Nymatrix((aa-Mmin+DM)/DM,1)=Ny1;
elseif aa~=Mmin;
Nymatrix((aa-Mmin+DM)/DM,1)=Ny1+Nymatrix((aa-Mmin)/DM,1);
end
end
??? Attempted to access Nymatrix(1,1); index must be a positive integer or logical.
end
and also when i want to figure out what's the problem and try following code, i got this error again.
if true
for aa=Mmin:0.1:Mmax1
gg((aa-Mmin+DM)/DM,1)=aa;
??? Attempted to access gg(2,1); index must be a positive integer or logical.
end
end
please help me as soon as possible if you can. Thanks
3 个评论
Jan
2012-7-24
Even more, Arman, it is not useful. The less confusing the posted code, the more likely is a valuable answer.
采纳的回答
Titus Edelhofer
2012-7-24
Hi,
it looks as if
(aa-Mmin+DM)/DM
is not an integer. If it should be, round would help:
gg(round((aa-Mmin+DM)/DM),1)=aa;
Titus
3 个评论
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Matrix Indexing 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!