This array comprises > 30,000 cells, and the composition of each cell is as follows: there is a string of alphanumeric characters before the vertical slash (|) and a string of numeric characters after the vertical slash. I would like to split this one-column array into two separate columns such that the first column contains only the alphanumeric characters before the vertical slash and the second column contains only the numeric characters after the vertical slash. I also do not want the vertical slash to be included in either of the columns.

Direct link to this answer

Use the 'strsplit' function to split a string by specifying the '|' character as a delimiter. We can also use the 'cellfun' function to repeat the 'strsplit' function on each cell of a cell array. The code below demonstrates the use of the two functions to achieve the output you require (A is the initial one column cell array).

>> newA = cellfun(@(x) strsplit(x, '|'), A, 'UniformOutput', false);

>> newA = vertcat(newA{:}); % To remove nesting of cell array newA

For more information regarding the use of the above mentioned function, please refer to the documentation links below: