Разделение чисел (в массиве из одной строки) с более чем двумя цифрами на несколько столбцов - PullRequest
1 голос
/ 28 июня 2011

Есть ли способ отделить

`vector=[0345;0230;0540;2340]`

в

`vec_1=[03;02;05;23]`

и

`vec_2=[45;30;40;40]`

Ответы [ 2 ]

3 голосов
/ 28 июня 2011

Как насчет

vector=[0345;0230;0540;2340]; 
v1 = mod(vector,100)
(vector-v1)/100
2 голосов
/ 28 июня 2011

Мое решение:

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'
...