2012年11月24日 星期六

Invalid handle object




clear
clc
x=linspace(0,pi,100);
h=plot(x,sin(x),'ko','markersize',3)
get(h,'markersize')
??? Error using ==> get
Invalid handle object.


無論怎麼看,h都是一個合法的握把物件(工作空間也看得到)

但為什麼會出現錯誤訊息?



其實原因很簡單,

1)原有的物件可能被刪除;

2)如果使用者在使用set或get指令前把figure關閉,

會造成操作對象消失,出現錯誤訊息;

3)另外有種可能是迴圈中的物件沒有hold on(預設是抹去前一張plot),

也會出現錯誤


1. user removes objects from figure before using "set" or "get"

2. figure/GUI is closed.

3. objects inside a "for loop" without turning "hold on"



記得第一次遇到這種錯誤,搞了一整晚

後來發現,出錯的時間點都是剛把介面關閉操作script的時候...

沒有留言: