フィルターのクリア

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 Center および File ExchangeMatrix Indexing についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by