plot in designated subfigures in loops

2 Ansichten (letzte 30 Tage)
feynman feynman
feynman feynman am 19 Mai 2024
I have the following code. I want to plotsubfigures as required in the comments in main.m. How to plot in designated subfigures in such loops below?
% main.m
tiledlayout(2,3)
for i=1:2
for j=1:3
function myfun;
end
end
% myfun.m
plot % in subplot(1,j)
plot % in subplot(2,j)

Akzeptierte Antwort

Abhishek Kumar Singh
Abhishek Kumar Singh am 19 Mai 2024
You can use tiledlayout and nexttile to create a tiled chart for multiple layouts.
Refer to the documentation for more information and assiciated examples at:
For your case, I tried with a dummy myfun function as:
function myfun(i, j)
% Generate a sine wave with varying frequency and amplitude
x = linspace(0, 2*pi, 100);
frequency = i; % Frequency increases with i
amplitude = j; % Amplitude increases with j
y = amplitude * sin(frequency * x);
% Calculate the tile index based on i and j for a 2x3 layout
tileIndex = (j-1) + (i-1)*3 + 1;
% Plot in the appropriate subplot
nexttile(tileIndex);
plot(x, y); % Plot the sine wave
% Customize the plot
title(sprintf('Freq: %d, Amp: %d', frequency, amplitude));
xlabel('x');
ylabel('sin(x)');
end
Now using the main.m script, as you are suggesting, you can plot in designated 'subfigures':
tiledlayout(2,3) % Create a 2x3 grid of tiles
for i=1:2
for j=1:3
myfun(i, j); % Call myfun with row (i) and column (j) indices
end
end
This demonstrates how to use nested loops and the tiledlayout with nexttile to create complex subplot arrangements.
Hope it helps!

Weitere Antworten (0)

Kategorien

Mehr zu 2-D and 3-D Plots finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by