Разделение чисел (в массиве из одной строки) с более чем двумя цифрами на несколько столбцов
Есть ли способ отделить
`vector=[0345;0230;0540;2340]`
в
`vec_1=[03;02;05;23]`
а также
`vec_2=[45;30;40;40]`
2 ответа
Решение
Мое решение:
v = [0345;0230;0540;2340];
vv = num2str(v,'%04d'); %# convert to strings, 4 digits, fill with zeros
v1 = str2num( vv(:,1:2) ) %# extract first two digits, convert back to number
v2 = str2num( vv(:,3:4) ) %# extract last two digits, convert back to number
Результат:
v1 =
3
2
5
23
v2 =
45
30
40
40
Конечно, если вы хотите, чтобы результат представлял собой массив ячеек строк (с сохранением любых ведущих нулей), используйте:
>> v1 = cellstr(num2str(v1,'%02d'))
v1 =
'03'
'02'
'05'
'23'
Как насчет
vector=[0345;0230;0540;2340];
v1 = mod(vector,100)
(vector-v1)/100