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!