我对 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语法吗?