Helloe everyone,
please, how can I process all data using loop to avoid repeat text and also to plot all of their figures (2D and 3D)?
the code I use:

 採用された回答

VBBV
VBBV 2023 年 7 月 19 日
編集済み: VBBV 2023 年 7 月 19 日

1 投票

You can use a for loop
tiledlayout('flow')
for k = 1 : 7
D = sprintf('PIVlab_%1d.mat',k)
hResult = surfheight(D,h0,H,n,[X0 Y0],'verbose','mask','nosetzero');
nexttile
imagesc(hResult.x,hResult.y,hResult.w)
end
D = 'PIVlab_1.mat'
D = 'PIVlab_2.mat'
D = 'PIVlab_3.mat'
D = 'PIVlab_4.mat'
D = 'PIVlab_5.mat'
D = 'PIVlab_6.mat'
D = 'PIVlab_7.mat'

4 件のコメント

Mostafa Elsayed
Mostafa Elsayed 2023 年 7 月 19 日
thank you VBBV.
the data processing is working but all figures are in one figure (as below) and I want to generate each figure (2D and 3D) separately (at the lower page) as written in the code posted before.
Mostafa Elsayed
Mostafa Elsayed 2023 年 7 月 19 日
here are the figures I want to plot (2D and 3D) separately as written in the code posted before
VBBV
VBBV 2023 年 7 月 19 日
編集済み: VBBV 2023 年 7 月 19 日
Ok, if you want to generate figures separately for 2D & 3D then, you can use for loop counter in figure function
for k = 1 : 7
D = sprintf('PIVlab_%1d.mat',k)
hResult = surfheight(D,h0,H,n,[X0 Y0],'verbose','mask','nosetzero');
figure(k);
imagesc(hResult.x,hResult.y,hResult.w);
cmap1 = colormap('jet');
c1 = colorbar;
figure(k+1);
surf(X,Y,hResult.w.','FaceAlpha',1,'EdgeColor','interp')
cmap2 = colormap('jet');
c2 = colorbar;
end
Mostafa Elsayed
Mostafa Elsayed 2023 年 7 月 19 日
thank you VBBV.
there is an error when I run the code, see below:
But I tried to modify a little bit the code (that you sent and mine) and now it works.
Thank you very much VBBV for your help and effort. see below the final working code:

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

ヘルプ センター および File Exchange で Loops and Conditional Statements についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by