I have a certain cell of size 400x1. It basically consists of numbers in the form of string. I mean when I do
mycell{1}
it gives result
Like this if the size(mycell)
is 400x1 . . . . .
str2num(cell2mat(mycell))
... or like this if the size is 1x400
str2num(cell2mat(mycell'))
However, this will cause problems if any of your strings contain a different number of characters, i.e.
mycell{1} = '2'
mycell{2} = '33'
If you have a case like this,
str2double(mycell)
...seems to handle this ok as mentioned in the other answer!
str2double(mycell)
Provided that you have an array of things that look like doubles:
>> c = {'1' '2' ; '3' '4'}
c =
'1' '2'
'3' '4'
>> str2double(c)
ans =
1 2
3 4
>> whos ans
Name Size Bytes Class Attributes
ans 2x2 32 double
If you have something that doesn't look like a double, you'll get a NaN
in that cell in the result:
>> c{2,2} = 'aei'
c =
'1' '2'
'3' 'aei'
>> str2double(c)
ans =
1 2
3 NaN
Also you can try cellfun(@str2num,mycell)
If you have a cell array of doubles:
mycell = {'1.56548524'; '1.5265'; '-4.2616' ;'-0.2154' ;'2.15'};
you can try
mat = cellfun(@str2num,mycell)