我想转换一个 <1 x 8 单元格>的字符
'111001' '00' '111000' '01' '1111' '10' '11101' '110'
到 <1 x 8 单元>的 <1 x(长度位码)>双精度
[111001] [00] [111000] [01] [1111] [10] [11101] [110]
我该怎么做?
这里有一个单行解决方案:
a=num2cell(str2double(s))
s = {'111001', '00', '111000', '01', '1111', '10', '11101', '110'};
d = cellfun(@(c_) c_ - '0', s, 'UniformOutput', false);
'01234' - '0'
将给出 1 x 5 的双矩阵[0, 1, 2, 3, 4]
,因为'01234'
实际上是char(['0', '1', '2', '3', '4'])
的,字符之间的减号运算将给出它们的 ASCII 码之间的运算。
试试这个:
s = {'111001','00','111000','01','1111','10','11101','110'}
num = str2num(str2mat(s));
尝试使用 str2num
将字符数组(字符串)转换为数字。
如果要将数字解释为二进制(以 2 为基数)数字,请尝试使用 bin2dec
。