How do I use IF-loops with plot_handles?
조회 수: 1 (최근 30일)
이전 댓글 표시
I'm having a bit of a problem to integrate the if-loop with plot handles. So the program I'm writing has this structure:
It has this menufile in which you choose what you want to do (This is only a small part of it):
case 1
plot_handles = createPlot(plot_handles);
case 2
changeWidth(plot_handles);
In case 1 you'll be able to index a figure and write the function which is plotted and you're being returned to the menu.
function plot_handles = createPlot(plot_handles)
clc
try
figureid = input('Input figure-ID: ');
func= input('Input function f(x): ','s');
figure(figureid);
h=ezplot(func);
plot_handles(figureid)=h;
catch
lasterr
error('Nonvalid function!');
end
end
Back in the menu I enter case 2 where the thought is that it'll ask you which figure you want to edit.Once you've choosen that you're supposed to be able to edit that figures' linewidth:
function changeWidth(plot_handles)
figureid = input('Input figure-ID: ');
h = plot_handles(figureid);
if exist(figureid)== 0 % Here's the problem, I don't know how to test if ...
% the ID is correct or not.
error('Invalid figure-ID')
else
width=input('Input new width: ');
set(h, 'linewidth', width)
end
The problem is that I don't know how to check if figure-ID is correct in the IF-loop, elsewhere I want the errormessage so be written out.
Would really appreciate some help!
댓글 수: 0
채택된 답변
per isakson
2013년 5월 20일
편집: per isakson
2013년 5월 20일
"check if figure-ID is correct "
There is a function:
ishandle
Test for valid graphics object handle
Continue:
I think code cells are useful when experimenting with code, see Evaluate Subsections of Files Using Code Cells. One small step at a time, check the result and proceed to next step.
Doc says:
h = ezplot(...) returns the handle to all the plot objects in h.
My first step:
h = ezplot( @sin );
get( h, 'Type' )
returns
ans =
line
Thus, ezplot returned the handle of the line object. Did you expect that?
댓글 수: 3
per isakson
2013년 5월 20일
"right way" that depends on who you ask. I doubbt.
- I hessitate to use the same variable, h, as handle to a graphic object and index to a double array.
- I hessitate to rely on current figure and current axes when more than one figure or axes exist simultaneously.
추가 답변 (0개)
참고 항목
카테고리
Help Center 및 File Exchange에서 Graphics Object Programming에 대해 자세히 알아보기
제품
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!