Matlab:将char的单元格转换为双向量的单元格

时间:2012-12-18 00:57:32

标签: matlab

我想转换< 1 x 8 cell>字符

'111001'    '00'    '111000'    '01'    '1111'  '10'    '11101' '110'

至< 1×8细胞> < 1 x(长度bitcode)>双打

[111001]    [00]    [111000]    [01]    [1111]  [10]    [11101] [110]

我该怎么做?

4 个答案:

答案 0 :(得分:8)

这是一个单线解决方案:

 a=num2cell(str2double(s))

答案 1 :(得分:6)

s = {'111001', '00', '111000', '01', '1111', '10', '11101', '110'};
d = cellfun(@(c_) c_ - '0', s, 'UniformOutput', false);

'01234' - '0'将给出1乘5双矩阵[0, 1, 2, 3, 4],因为'01234'实际上是char(['0', '1', '2', '3', '4']),而字符之间的减号操作将在它们的ASCII代码之间进行操作。

答案 2 :(得分:4)

试试这个:

    s = {'111001','00','111000','01','1111','10','11101','110'}
    num = str2num(str2mat(s));

答案 3 :(得分:3)

尝试使用str2num将char数组(字符串)转换为数字。

如果您想将这些数字解释为二进制(基数2)数字,请尝试使用bin2dec