我有以下代码:
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);
有人可以解释为什么会这样吗?我认为这将是一种更好的做事方式,但它似乎完全是非法的......
答案 0 :(得分:0)
看起来像cell2mat()就可以了!
注意:我猜string2double隐式转换为数组?