2011-05-08 40 views
11

我想在一个结构中包装几个变量,以便从函数中轻松地输入和输出,因为它们发送的时间相当长。问题是其中一个变量是一个单元格数组 - 特别包含字符串。显然,一旦给予Matlab中的结构内的单元格数组 - 可能吗?

struct(var1,var2,...) 

的变量之一是一个单元阵列,然后它使结构结构的单元阵列,代替具有单元阵列的结构的内变量 - 这不是我期望的结果并且需要大量的代码。

有没有解决方法/解决这个问题的方法?

+5

这是写给在以前的重复:[MATLAB的“错误”(或真正奇怪的行为)与结构和空单元格数组](http://stackoverflow.com/questions/939544/matlab-bug-or-really-weird-behavior-with-结构和空细胞阵列)。解决的办法是,在将其传递给STRUCT函数时,必须将单元格数组的值包装到附加单元格数组中的字段中。 – gnovice 2011-05-08 15:17:14

回答

24

您可以直接设置现场:

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

或者,如果你想要做内部结构的一切(),你可以把电池阵列成单元阵列:

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

谢谢,非常有帮助! – dan12345 2011-05-08 16:36:51

相关问题