Convert cell to array in matlab

前端 未结 3 929
野趣味
野趣味 2020-12-18 05:07

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

相关标签:
3条回答
  • 2020-12-18 05:21

    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!

    0 讨论(0)
  • 2020-12-18 05:27
    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
    
    0 讨论(0)
  • 2020-12-18 05:39

    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)

    0 讨论(0)
提交回复
热议问题