"无法从单元转换为双倍。"但输入是双打的单元格数组

时间:2016-12-09 07:44:53

标签: matlab cell-array

我有以下代码:

Xh = zeros(InfDS.statedim,N);                          
Xh(:,1) = str2double(states_0(2:end,2));
Px = diag(str2double(states_0(2:end,3)));

其中states_0是Nx3单元阵列。例如,它可以看起来如下:

''       'x0'       'P0'  
'SOC'    '100'      '0.75'
'RI'     '0.001'    '0.75'

但它也可能包含更多参数。

我的问题是我已经重写了部分代码,s.t。不再返回包含字符串的单元格数组,而是返回包含双精度数组的单元格数组。

[       100]    [0.7500]
[1.0000e-03]    [0.7500]

我认为由于转化次数较少,这会更容易使用,但似乎不是......我尝试过:

Xh = zeros(InfDS.statedim,N);
Xh(:,1) = states_0(1:end,1);
Px = diag(states_0(1:end,2));

但这给了我错误:

Conversion to double from cell is not possible.

Error in testfile (line 61)
Xh(:,1) = states_0(1:end,1);

有人可以解释为什么会这样吗?我认为这将是一种更好的做事方式,但它似乎完全是非法的......

1 个答案:

答案 0 :(得分:0)

看起来像cell2mat()就可以了!

注意:我猜string2double隐式转换为数组?