2017-06-05 10 views
0

私はそれが時間のランダム二値(0.017、0.035など)を返すので、何のオブジェクトハンドルが作成されていないので、コールバックの実行中にエラーを与えているUicontrolオブジェクトなぜmatlabのuicontrol関数がdouble値を返すのですか?

h = uicontrol('style','listbox','max',10,'min',1,'Position',[200 200 200 200],'string',sheets,'Callback',@listbox1_Callback); 

を作成するには、このコマンドを使用しています。

異なるMatlabのバージョンの動作で完全なコード

FileName = uigetfile('*.xlsx','Select the data file',filepath); 
[status,sheets,xlFormat] = xlsfinfo(FileName) 
h = uicontrol('style','listbox','max',10,'min',1,'Position',[200 200 200 200],'string',sheets,'Callback',@listbox1_Callback); 
+0

どのようなMATLABのバージョンですか? R2014bで再現できません。あなたは 'uicontrol'と呼ばれる他の関数/変数を持っていませんか? –

+0

2014a。いいえ、uicontrolという他の関数/変数はありません。 – Vaishnavi

+0

コメントではなく、質問のコード! –

答えて

1

。 Uicontrolののプロパティを取得するには、これは関係なくhが二重ではないか、ハンドルに動作します:あなたは後者の構文を使用したい場合は

str = h.String; % only supported for later versions where h is handle 

str = get(h, 'String'); % work for all versions 

その後Matlabのは、このために、より便利な方法をサポートしています以前のバージョンでは、これを行うことができます:

h = handle(h); % convert double to handle for earlier matlab 

その後、あなたは後でmatlabと同じことをすることができます。あなたが異なるバージョンとの互換性について心配している場合、上記のコマンドは後のmatlabのバージョンでは問題ありません。

+0

それは働いた。どうもありがとう – Vaishnavi

関連する問題