私はより良いタイトルを見つけることができなかったので、matlabについて少し混乱しています。
私は次の構造を持っています
testit.m
+package
testfile.m
testit.m には以下が含まれます。
import package.testfile
testfile
testfile.m には以下が含まれます。
view = struct();
v = uiextras.Grid( 'Spacing', 5 );
view.view = v;
view.axes = axes( 'Parent', view.view );
ベースディレクトリに cd して入力testit
すると、次のエラーが表示されます。
??? Error using ==> axes
Conversion to double from unknown is not possible.
Error in ==> testfile at 4
view.axes = axes( 'Parent', view.view );
Error in ==> testit at 3
testfile
ここまでは順調ですね。しかし、testfile.m をパッケージに入れず、testfile.m を介して直接呼び出すと、すべて正常に動作します。testfile.m の最後の行を
view.axes = axes( 'Parent', v );
構造体を使用してグリッドにアクセスしないようにすると、エラーが発生します。
??? No method 'onChildAddedEvent' with matching signature found for class 'uiextras.Grid'.
Error in ==> Container>@(varargin)obj.onChildAddedEvent(varargin{:}) at 95
obj.Listeners{end+1,1} = handle.listener( containerObj, 'ObjectChildAdded', @obj.onChildAddedEvent );
Warning: Error occurred while evaluating listener callback.
> In testfile at 4
In testit at 3
uiextras はhttp://www.mathworks.com/matlabcentral/fileexchange/27758から来ています
ファイルをパッケージに入れるかどうかで違いが生じるのはなぜですか? v と view.view のどちらを使用しても違いが生じるのはなぜですか? matlab の構文を誤解しているだけですか?