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 件のコメント

Azzi Abdelmalek
Azzi Abdelmalek 2015 年 7 月 12 日
What is the error message?
Mason Scott
Mason Scott 2015 年 7 月 12 日
It will say "Error using axes, invalid axes handle"
Azzi Abdelmalek
Azzi Abdelmalek 2015 年 7 月 12 日
I tested your code, there is no error message

サインインしてコメントする。

回答 (1 件)

Jan
Jan 2015 年 7 月 12 日

0 投票

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

カテゴリ

タグ

質問済み:

2015 年 7 月 12 日

回答済み:

Jan
2015 年 7 月 12 日

Community Treasure Hunt

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

Start Hunting!

Translated by