Invalid axes handle error with gca?

I'm trying to write a function that places an inset axis on an axis given as an argument among other things, but I keep getting this invalid axes handle error when I try to run:
function aHanNew = magnifyingGlass(aHan, subdomain, insetPosition)
axes(aHan);
aHanNew = axes('position',insetPosition);
end
magnifyingGlass(gca,[0.001 0.1],[.6 .6 .25 .25]);
However when I alter the function to be
function aHanNew = magnifyingGlass(aHan, subdomain, insetPosition)
axes(gca);
aHanNew = axes('position',insetPosition);
end
It works just fine. When I call axes on gca directly it works, but when I call axes on a variable in which gca is stored it doesn't work. Why is this? and how can I get the first function to work correctly?

3 Comments

What is the error message?
It will say "Error using axes, invalid axes handle"
I tested your code, there is no error message

Sign in to comment.

Answers (1)

Perhaps you have shadowed the function gca by a variable with the same name? You can use the debugger to examine that. Simply set a breakpoinnt in teh offending line and check, what the name points to:
which gca

Categories

Find more on Specifying Target for Graphics Output in Help Center and File Exchange

Tags

Asked:

on 12 Jul 2015

Answered:

Jan
on 12 Jul 2015

Community Treasure Hunt

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

Start Hunting!