Мое решение:
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'