Returning Plot handle From a function.

5 views (last 30 days)
Hi Guys,
I have a function called myFill which uses the following commands to plot two filled areas:
f = fill(freqPoints,filledGood,goodColour,freqPoints,filledBad,badColour);
set(f(1),'EdgeColor',goodEdge,'FaceAlpha',0.5,'EdgeAlpha',1)
set(f(2),'EdgeColor',badEdge,'FaceAlpha',0.5,'EdgeAlpha',1)
I want to be able to add a line at a later point in my code so I know I need the handle to the plot. But when I try:
[ax,f] = fill(...)
I get the error "To many output arguments."
Can someone tell me how to return a handle to the plot, which can be used to up date it with a new line, please. Thanks in advance.
Kind regards,
Tim.

Accepted Answer

Tim Mottram
Tim Mottram on 25 Sep 2012
Edited: Tim Mottram on 25 Sep 2012
H = myFill
f = fill(freqPoints,filledGood,goodColour,freqPoints,filledBad,badColour);
set(f(1),'EdgeColor',goodEdge,'FaceAlpha',0.5,'EdgeAlpha',1)
set(f(2),'EdgeColor',badEdge,'FaceAlpha',0.5,'EdgeAlpha',1)
THEN
H = gca
end
Outside function:
hold on
H = plot(x,newLine)
hold off

More Answers (1)

Wayne King
Wayne King on 25 Sep 2012
Edited: Wayne King on 25 Sep 2012
you don't use two output arguments, just
h = fill()
If you want a handle to the current axes, you can just do
ax = gca;
with the plot active.

Categories

Find more on Graphics 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!