Looping through Axes on figure created using subplot
16 ビュー (過去 30 日間)
古いコメントを表示
Hello, I have a figure with 5 subplots on.
hf1=figure('position',pos,'Name','4LineScan'); % pos defined elsewhere
ax1=subplot(1,5,1); ax2=subplot(1,5,2); ax3=subplot(1,5,3);
ax4=subplot(1,5,4); ax5=subplot(1,5,5);
I then want to perform the same operation on different data and plot on one of each of the axes. Rather than have my code sequencial, Im thinking of doing it in a loop, but am trying to be able to get each axes in a loop.
I thought this might be one way
hChild = findobj(hf1, 'Type','Axes' )
h1=hChild(1)
But I want to be sure that on iteration 1 of the loop it picks out ax1, and then ax2 etc. Is there a way to do this
Thanks
1 件のコメント
Dyuman Joshi
2024 年 1 月 8 日
As you are working with R2022b, (imo) it would be better to use tiledlayout and add plots to tiles using a for loop.
採用された回答
Voss
2024 年 1 月 8 日
hf1=figure('position',pos,'Name','4LineScan'); % pos defined elsewhere
% store the axes in an array:
ax = [ ...
subplot(1,5,1) ...
subplot(1,5,2) ...
subplot(1,5,3) ...
subplot(1,5,4) ...
subplot(1,5,5) ...
];
% then it's easy to access the ii-th axes in a loop:
for ii = 1:5
% do whatever you want with ax(ii)
end
0 件のコメント
その他の回答 (1 件)
Jason
2024 年 1 月 8 日
4 件のコメント
Voss
2024 年 1 月 8 日
@Jason: What are you going to do with ax1, ax2, ax3, ..., that you can't do with ax(1), ax(2), ax(3), ... (in my version) or A(1), A(2), A(2), ... (in your version)?
You can always construct a string that says 'ax1' or whatever
for ii = 1:5
str = "ax"+ii;
disp("Working with axes "+str);
end
参考
カテゴリ
Help Center および File Exchange で Subplots についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!