How can I set the labels of multiple axes without iteration?
2 次查看(过去 30 天)
显示 更早的评论
Hello all,
I have a figure with multiple uipanels, each with its own axes. How can I set the labels of all the pannels' axes at once without having to use iterations? I am assuming that the axes of all pannels should have the same label.
Thanks!
0 个评论
采纳的回答
Cam Salzberger
2021-6-28
Hello Yazan,
If, as you create the axes, you save the handles to one reference axes array, you can easily set the labels like so:
xlabel(axesArray, "LabelX")
ylabel(axesArray, "LabelY")
If you don't have an array of axes, and it's not feasible to get one while setting up the figures, you can use findobj to get that list:
axesArray = findobj(figureHandle, "Type", "axes");
This searches all nested children by default, though you can set limits on that.
-Cam
4 个评论
Cam Salzberger
2021-7-7
Well, it looks like they made xlabel vectorized at some point, but not in R2019b. So here's a quick workaround, if you don't want to use loops.
allAxes = [ax1, ax2];
% or
allAxes = findobj(f, 'Type', 'axes');
arrayfun(@(hAx) xlabel(hAx, 'XLabel'), allAxes)
-Cam
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Interactive Control and Callbacks 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!