필터 지우기
필터 지우기

How can i solve "Index exceed the number of array problem(1)

조회 수: 2 (최근 30일)
주선 문
주선 문 2022년 8월 23일
편집: 주선 문 2022년 8월 23일
t=0:0.1:800;
n=800;
Nddotin=500;
Nddotpen=8.9;
Nddotdep=Nddotin*nfilt;
Nddotsur=Nddotdep*(1-nanti);
for i=1:n+1
Nddotexi(1)=166;
Nddotexi(i+1)=((-1/t(i+1)-t(i))+r-fent+((1/(t(i+1)-t(i)))*(1/(t(i+1)-t(i))-2*(r-fent)+((4*r)/Nddotmax)*(Nddotexi(i)+Nddotsur(i+1)-Nddotsur(i)))+(r-fent)^2)^(0.5))/(2*r/Nddotmax);
Nddotent=fdotent*vmed*Nddotexi(i+1);
Nddotout=Nddotent+Nddotpen;
end
figure(1)
plot(t,Nddotout,'r*',t,Nddotent,'k*',t,Nddotpen,'g*');
xlable=('time'); ylabel=('Bioaerosol');
hold on; grid on;
%The bold sentence is the problem how can i solve that
  댓글 수: 3
Chunru
Chunru 2022년 8월 23일
Can you post the above code (instead of screen capture)?
주선 문
주선 문 2022년 8월 23일
clc;clear all;
p=2.7;a2=0.002;L=0.015;FA=0.35;MA=10;df=3*10^(-6);W=25*10^(-3); %filter2
Pe=df*L/W^2; Fk=(4*a2-(a2)^2-3)/4-(log(a2))/2;
r=0.0012; fdotent = 3*10^(-10); vmed= 1/(10*(1-a2));Cddotdep=0;%Cin=0
fent=fdotent*vmed;
ad=0;% ad=(Cddotdep*t)*(p*W);
a=a2+ad;
S=(4*L*a)/pi*df; Nddotmax=1.15*10^(7);
nanti=0.5; nfilt=0.5;
n=799;
Nddotin=500;
Nddotpen=8.9;
Nddotdep=Nddotin*nfilt;
Nddotsur=Nddotdep*(1-nanti);
for i=1:n+1
Nddotexi(1)=166;
Nddotexi(i+1)=((-1/0.1)+r-fent+((1/0.1)*(1/0.1)-2*(r-fent)+((4*r)/Nddotmax)*(Nddotexi(i)+Nddotsur(i+1)-Nddotsur(i)))+(r-fent)^2)^(0.5)/(2*r/Nddotmax);
Nddotent=fdotent*vmed*Nddotexi(i+1);
Nddotout=Nddotent+Nddotpen;
end
figure(1)
plot(t,Nddotout,'r*',t,Nddotent,'k*',t,Nddotpen,'g*');
xlable=('time'); ylabel=('Bioaerosol');
hold on; grid on;

댓글을 달려면 로그인하십시오.

채택된 답변

Chunru
Chunru 2022년 8월 23일
Not sure what you want to do with the code without background info. It seems that you need to specify "Nddotsur" as a vector.
p=2.7;a2=0.002;L=0.015;FA=0.35;MA=10;df=3*10^(-6);W=25*10^(-3); %filter2
Pe=df*L/W^2; Fk=(4*a2-(a2)^2-3)/4-(log(a2))/2;
r=0.0012; fdotent = 3*10^(-10); vmed= 1/(10*(1-a2));Cddotdep=0;%Cin=0
fent=fdotent*vmed;
ad=0;% ad=(Cddotdep*t)*(p*W);
a=a2+ad;
S=(4*L*a)/pi*df; Nddotmax=1.15*10^(7);
nanti=0.5; nfilt=0.5;
n=799;
Nddotin=500;
Nddotpen=8.9;
Nddotdep=Nddotin*nfilt;
Nddotsur=Nddotdep*(1-nanti);
% Initialize Nddotexi
Nddotexi = zeros(n+1, 1);
Nddotexi(1)=166;
for i=1:n % not n+1
%Nddotexi(i+1)=((-1/0.1)+r-fent+((1/0.1)*(1/0.1)-2*(r-fent)+((4*r)/Nddotmax)*(Nddotexi(i)+Nddotsur(i+1)-Nddotsur(i)))+(r-fent)^2)^(0.5)/(2*r/Nddotmax);
% Note that Nddotsur is not a vector
Nddotexi(i+1)=((-1/0.1)+r-fent+((1/0.1)*(1/0.1)-2*(r-fent)+ ...
((4*r)/Nddotmax)*(Nddotexi(i)+Nddotsur(i+1)-Nddotsur(i)))+(r-fent)^2)^(0.5)/(2*r/Nddotmax);
Nddotent=fdotent*vmed*Nddotexi(i+1);
Nddotout=Nddotent+Nddotpen;
end
Index exceeds the number of array elements. Index must not exceed 1.
figure(1)
plot(t,Nddotout,'r*',t,Nddotent,'k*',t,Nddotpen,'g*');
xlable=('time'); ylabel=('Bioaerosol');
hold on; grid on;
  댓글 수: 1
주선 문
주선 문 2022년 8월 23일
편집: 주선 문 2022년 8월 23일
a2=0.002;%p=2.7;L=0.015;FA=0.35;MA=10;df=3*10^(-6);W=25*10^(-3); %filter2
%Pe=df*L/W^2; Fk=(4*a2-(a2)^2-3)/4-(log(a2))/2;
r=0.0012; fdotent = 3*10^(-10); vmed= 1/(10*(1-a2));Cddotdep=0;%Cin=0
fent=fdotent*vmed;
ad=0;% ad=(Cddotdep*t)*(p*W);a=a2+ad;S=(4*L*a)/pi*df;
Nddotmax=1.15*10^(7);
nanti=0.5; nfilt=0.5;
n=input('input:');
Nddotin=500;
Nddotpen=8.9;
Nddotdep=Nddotin*nfilt;
Nddotsur=Nddotdep*(1-nanti);
% Initialize Nddotexi
Nddotexi = zeros(n+1, 1);
Nddotsur = zeros(n+1, 1);
Nddotexi(1)=166;
for i=1:n
Nddotexi(i+1)=((-1/0.1)+r-fent+((1/0.1)*(1/0.1)-2*(r-fent)+ ...
((4*r)/Nddotmax)*(Nddotexi(i)+Nddotsur(i+1)-Nddotsur(i)))+(r-fent)^2)^(0.5)/(2*r/Nddotmax);
Nddotent=fdotent*vmed*Nddotexi(i+1);
Nddotout=Nddotent+Nddotpen;
end
figure(1)
plot(t,Nddotout,'r*',t,Nddotent,'k*',t,Nddotpen,'g*');
xlable=('time'); ylabel=('Bioaerosol');
hold on; grid on;
Nddotout is Nddotent+Nddotpen
Nddotout is not change

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Matrix Indexing에 대해 자세히 알아보기

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by