フィルターのクリア

How do you loop code for all gridsizes in order to obtain iterations for each of them

1 回表示 (過去 30 日間)
I am trying to run everything within the first for loop for each ndiv so that at the end I can obtain 8 different iterations that line up with the different values within the ndiv array. How do I set up my code so that it loops through all of the ndiv (Gridsizes) values and gives me 8 different values of k that can be set up into an array format
Code:
a=25;
b=a;
ndiv=[4,8,16,32,128,256,512];
for nx=ndiv(1)
nz=nx;
x = linspace(0, a, nx);
z = linspace(0, b, nz);
[X, Z] = meshgrid(x,z);
Tnp1 = zeros(nx, nz);
Tnp1(:,1) = 20; % Left boundary
Tnp1(:,end) = 20; % Right boundary
Tnp1(1,:) = 20+380*sin((x*pi)/25)+205*sin((x*5*pi)/25); % Bottom boundary
Tnp1(end,:) = 20; % Top boundary
err = 1;
tol = 1e-8;
k=0;
while err > tol
Tn = Tnp1;
k=k+1;
for i = 2:nx-1
for j = 2:nz-1
Tnp1(i,j) = (1/4)*(Tn(i+1,j)+Tn(i-1,j)+Tn(i,j+1)+Tn(i,j-1));
end
end
err = max(abs(Tnp1(:) - Tn(:)));
end
T = Tnp1;
end

採用された回答

Walter Roberson
Walter Roberson 2021 年 6 月 5 日
ndiv=[4,8,16,32,128,256,512];
for nx=ndiv(1)
replace that with something like
ndiv=[4,8,16,32,128,256,512];
for nidx = 1:length(ndiv)
nx = ndiv(nidx)
stuff goes here
all_k(nidx) = k;
end

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeProgramming についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by