Вы можете использовать CELL2STRUCT
cell2struct(splits(2:2:end),splits(1:2:end),2)
ans =
cubeId: '001000'
X: '10'
Y: '10'
Z: '10'
minX: '8590'
maxX: '9200'
minY: '8590'
maxY: '9200'
minZ: '87'
maxZ: '95'
Если вы хотите, чтобы поля содержали числа, вы можете вместо этого написать
cell2struct(cellfun(@str2double,splits(2:2:end),'uniformOutput',false),splits(1:2:end),2)
Дополнительно,Вы можете изменить свое регулярное выражение, чтобы оно сразу возвращало структуру (я не набрал полное выражение, извините):
regexp(parseStr,'cubeId=(?<cubeId>\d+)_X=(?<X>\d+)','names')
ans =
cubeId: '001000'
X: '10'