MATLAB: Sscanf with cell array of strings

cell arraymatrix manipulation

Say I have a cell array:
C = {'2_5_7';'10_2_6';'4_3_7';'3_10_11';'3_16_11'};
To extract one row as a vector of number I was using:
sscanf(C{[2]},'%d_')'
ans =
10 2 6
Now I would like to get several rows (say 2 and 4) in form of a matrix, but this does not work.
sscanf(C{[2 4]},'%d_')'
The desired output for this case should be:
ans =
10 2 6
3 10 11
I would like to avoid the use of a for loop.Any suggestions?
EDIT: The elements of C dont necesarilly contain only 3 number, they can contain 4 or more. ie '3_10_11_5'

Best Answer

Probably the most efficient solution:
>> C = {'2_5_7';'10_2_6';'4_3_7';'3_10_11';'3_16_11'};
>> X = [2,4];
>> M = sscanf(sprintf(' %s',C{X}),'%d_%d_%d',[3,Inf]).'
M =
10 2 6
3 10 11
Or a slight simplification (if you are confident about your data):
>> M = sscanf(sprintf('%s_',C{X}),'%d_',[3,Inf]).'
M =
10 2 6
3 10 11