Changing the same property of some axis children using subsasgn

조회 수: 4(최근 30일)
How to make the following code work in order to change the 'Visible' property of some children plots whose handles are stored in toHide using subsasgn?
f1 = figure;
ax1=axes(f1);
axis(ax1,'tight');
ax1.NextPlot = 'add';
plot(ax1,[1,2],[3,4],'DisplayName','graph 1')
plot(ax1,[1,2],1.5*[3,4],'DisplayName','graph 2')
plot(ax1,[1,2],2*[3,4],'DisplayName','three')
toHide = findobj(ax1,'-regexp','DisplayName','graph');
%% Method 1
toHide(:).Visible = {'off','off'};
%% Method 2
S = substruct('()',{':'},'.','Visible');
toHide(:).Visible = subsasgn( toHide , S , {'off','off'} );
  댓글 수: 4
Diaa
Diaa 2021년 4월 18일
Thanks for the help.

댓글을 달려면 로그인하십시오.

채택된 답변

Matt J
Matt J 2021년 4월 18일
편집: Matt J 2021년 4월 18일
I assume you know that subsasgn is called implicitly whenever you make an assignment statement, as in the following:
[toHide.Visible]=deal('off')
  댓글 수: 4
Matt J
Matt J 2021년 4월 18일
No, it cannot be done solely with subsasgn, with no loops.

댓글을 달려면 로그인하십시오.

추가 답변(0개)

범주

Find more on Get Started with MATLAB in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by