Matlab中是否可以在结构体内使用单元数组?

14

我想把一些变量封装在一个结构体中,以便在函数间更轻松地进行输入和输出。问题是其中一个变量是一个单元数组 - 具体包含字符串。显然,一旦将其中一个变量传递给

struct(var1,var2,...) 
如果是一个单元数组,则将该结构体变为结构体的单元数组,而不是将单元数组作为结构体内部变量——这不是我想要的结果,需要许多丑陋的代码。是否有任何解决方案或变通方法来解决这个问题?

5
这个问题在之前的重复帖子中已经得到了解决:MATLAB“错误”(或真的很奇怪的行为)与结构体和空单元格数组。解决方法是,在将单元格数组值作为字段传递给STRUCT函数时,必须将其包装在额外的单元格数组中。 - gnovice
1个回答

30

您可以直接设置该字段:

 X = struct('a', 'one', 'b', 'honk');
 X.c = {'x', 'y'};

或者,如果你想要在struct()函数内完成所有操作,你可以将cell数组放入一个cell数组中:

X = struct('a', 'one', 'b', 'honk', 'c', {{'foo', 'bar'}});
X = 
    a: 'one'
    b: 'honk'
    c: {'foo'  'bar'}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接