MATLAB: How to extend the matrix size by splitting up a column in two columns

extend matrix sizeinsert columnsplit up columnsplit up number

There is a Matrix A, which can have variable size, for example (5×4):
A =
|10 2 0.0 6|
|10 2 18.0 6|
|10 2 1800.0 6|
|10 2 1810.0 6|
|10 2 2215.0 6|
Now there's a specific column (3rd column), which I wish to be separated in two different columns, but next to each other, like this:
A =
|10 2 0 0 6|
|10 2 0 18 6|
|10 2 18 00 6|
|10 2 18 10 6|
|10 2 22 15 6|
Such a column can also appear in the first or last column. Then it is separated in the same way. The matrix size then gets (5×5) in this case.
The numbers in the specific column are always non-negative integers and can only contain numbers between 0000 – 9999. the first two digits belong to the one column, the next two digits belong to the next column.

Best Answer

A= [10 2 0.0 6;...
10 2 18.0 6;...
10 2 1800.0 6;...
10 2 1810.0 6;...
10 2 2215.0 6];
Str = mat2cell(reshape(sprintf('%04i',A(:,3)),4,[])',ones(size(A,1),1),[2 2]);
your_vals = cellfun(@(x) str2double(x),Str);
A(:,3) = [];
A = [A(:,1:2) your_vals A(:,3:end)];