How do I change a 2D char array to double array

1 view (last 30 days)
I have a char array like this
val =
'1,106,54,40;421,389,234,21 '
'592,391,259,20;2174,391,240,20 '
'1,40,28,29;2863,1,139,36;2471,386,247,24;3224,1,114,30;3654,1,95,38;3780,76,60,29;1579,391,101,20'
This is 2D char array. For example,
val(1,1) = '1'
val(1,2) = ','
What I want to do is transforming this to double array
[1,106,54,40;421,389,234,21] (This case will be 2×4 double array)
[592,391,259,20;2174,391,240,20] (Also 2×4 double array)
[1,40,28,29;2863,1,139,36;2471,386,247,24;3224,1,114,30;3654,1,95,38;3780,76,60,29;1579,391,101,20] (7×4 double array)
My array may have empty row in 2D char array too. For example,
''
This has to be 0×0 double array
How can I do this? Thank you so much!
  2 Comments
Seung Woo Ham
Seung Woo Ham on 1 Jun 2018
Actually, my 2D char array is much larger than this. So I have to use a loop function to handle this.
Stephen23
Stephen23 on 1 Jun 2018
@Seung Woo Ham: do the matrices always have four columns?

Sign in to comment.

Accepted Answer

KSSV
KSSV on 1 Jun 2018
val = {'1,106,54,40;421,389,234,21 ' '592,391,259,20;2174,391,240,20 ' '1,40,28,29;2863,1,139,36;2471,386,247,24;3224,1,114,30;3654,1,95,38;3780,76,60,29;1579,391,101,20' };
iwant = cellfun(@str2num,val,'un',0)

More Answers (0)

Categories

Find more on Characters and Strings in Help Center and File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!