AppDesigner plot on specific UIAxes from list

I have an app with 10 UIAxes disposed on different pages. I want to know if there is a way to use a single function to produce plot on different UIAxes. For example here i have a list of all my UIAxes from 1 to 10 and i want to use a list to specify on what UIAxes i want to plot my data (datax,datay).
uiaxes_list = {'UIAxes1','UIAxes2','UIAxes3','...','UIAxes10'};
for i = 1:10
p = plot(uiaxes_list{1,i},datax,datay);
end
if I use something like that i got the error "invalid first data argument".
now i have a code like that but i want to improve it to add more functions.
if i == 1
p = plot(UIAxes1,datax,datay);
elseif i == 2
p = plot(UIAxes2,datax,datay);
elseif i == 3
p = plot(UIAxes3,datax,datay);
...
end
thanks.

답변 (1개)

Kevin Holly
Kevin Holly 2022년 7월 22일
편집: Kevin Holly 2022년 7월 22일

0 개 추천

If you have a set number of UIAxes, you could use a switch case in a function as such:
function foo(ChosenAxes,datax,datay)
switch ChosenAxes
case 'UIAxes1'
p = plot(app.UIAxes1,datax,datay);
case 'UIAxes2'
p = plot(app.UIAxes2,datax,datay);
case 'UIAxes3'
p = plot(app.UIAxes3,datax,datay);
end
end

댓글 수: 2

thanks for your answer but this is similar to my script. I need a script that automatically changes the UIAxes target from the list. For example if i want to change a property, for example the linestyle of all plot, I want to avoid writing:
p1 = plot(app.UIAxes1,datax,datay);
app.p1.LineStyle = '--';
p2 = plot(app.UIAxes2,datax,datay);
app.p2.LineStyle = '--';
...
p10 = plot(UIAxes10,datax,datay);
app.p10.LineStyle = '--';
and instead use a for loop to automatically change all plots linestyle.
Please see the app attached and let me know if you have any more questions.

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

카테고리

도움말 센터File Exchange에서 Startup and Shutdown에 대해 자세히 알아보기

질문:

2022년 7월 22일

댓글:

2022년 7월 25일

Community Treasure Hunt

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

Start Hunting!

Translated by