raf*_*lio 1 matlab matlab-struct
我刚开始使用Matlab,我绝对鄙视(或者不能正确理解)类型系统(或缺乏).
为什么这不起作用?我只想在结构中使用结构(在递归函数中)
K>> d = struct('op',1,'kids',[])
d =
op: 1
kids: []
K>> d.kids(1) = struct('op',2)
Conversion to double from struct is not possible.
Run Code Online (Sandbox Code Playgroud)
我试过其他的东西,比如制作d=struct('op',1,'kids', struct([])),但似乎没什么用......
当你用它索引时(1),你试图将结构分配给第一个元素d.kids,它已经是一个double数组,因此类型不匹配.只需分配整个字段.
d.kids = struct('op', 2);
Run Code Online (Sandbox Code Playgroud)
要使用结构初始化它,请执行此操作,struct不带参数调用而不是传递[]给它.
d = struct('op',1, 'kids',struct());
Run Code Online (Sandbox Code Playgroud)
不要屈服于绝望和仇恨.类型系统可以处理你想要的东西; 你只是犯了基本的语法错误.阅读MATLAB入门指南,特别是在线帮助(doc()在Matlab中调用)或MathWorks网站上的"矩阵和数组"和"编程"部分.