Convert cell into double
    8 views (last 30 days)
  
       Show older comments
    
Hi,
I have a matrix (1050*7) where I want to convert the cell format into a double:
It looks like that:
'0101' '2' '31.1.2013' '5' '5' '1' '23875' '0101' '2' '31.1.2013' '3' '3' '1' '5437' ...
Thanks already!
0 Comments
Answers (5)
  Dishant Arora
      
 on 23 Jun 2014
        
      Edited: Dishant Arora
      
 on 23 Jun 2014
  
      If your data follow this strict order and the 3rd column refers to date, try this:
function y = fun(x)
if isnan(str2double(x))
  y = datenum(regexprep(x , '\.' , '-'))
else
  y = str2double(x)
end
% consider testCell as your input cell, run this script
outputMatrix = cellfun(@(x)fun(x) , testCell , 'Un' , 1);
0 Comments
  Julia
      
 on 23 Jun 2014
        There is the command cell2mat (from the Matlab help):
Combine matrices in the four cells of cell array c into matrix m.
c = {[1],    [2, 3, 4];
     [5; 9], [6, 7, 8; 10, 11, 12]};
m = cell2mat(c)
m is a 3-by-4 matrix:
m =
     1     2     3     4
     5     6     7     8
     9    10    11    12
0 Comments
  Ben11
      
 on 23 Jun 2014
        If all your entries are numbers you can use cell2mat. Is that the case?
0 Comments
  Star Strider
      
      
 on 23 Jun 2014
        It looks like a codes ( e.g. '0101' ) and dates ( e.g. '31.1.2013' ) so a simple conversion is probably not what you want. I would convert it to a table with the cell2table function if your version of MATLAB supports tables.
0 Comments
See Also
Categories
				Find more on Data Type Conversion 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!



