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

2 次查看(过去 30 天)
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 个评论
Seung Woo Ham
Seung Woo Ham 2018-6-1
Actually, my 2D char array is much larger than this. So I have to use a loop function to handle this.
Stephen23
Stephen23 2018-6-1
@Seung Woo Ham: do the matrices always have four columns?

请先登录,再进行评论。

采纳的回答

KSSV
KSSV 2018-6-1
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)

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Characters and Strings 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by