6

サイズ400x1の特定のセルがあります。基本的には、文字列形式の数値で構成されます。つまり、私がするとき

mycell{1}

それは結果を与える'1'

数値 1 が文字列の形式であることがわかります。これを数値配列に変換するにはどうすればよいですか?

4

3 に答える 3

7
str2double(mycell)

double のように見えるものの配列があるとします。

>> 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              

double のように見えないものがある場合NaN、結果のそのセルにa が表示されます。

>> c{2,2} = 'aei'

c = 

    '1'    '2'  
    '3'    'aei'

>> str2double(c)

ans =

     1     2
     3   NaN
于 2012-06-11T21:11:48.687 に答える
5

size(mycell)が 400x1の場合はこのようになります。. . . .

str2num(cell2mat(mycell))

... または、サイズが 1x400 の場合はこのように

str2num(cell2mat(mycell'))

ただし、文字列のいずれかに異なる数の文字が含まれている場合、これは問題を引き起こします。

mycell{1} = '2'
mycell{2} = '33'

このようなケースがあれば、

str2double(mycell)

...他の回答で述べたように、これは問題なく処理できるようです!

于 2012-06-11T21:09:29.220 に答える
4

cellfun(@str2num,mycell) また、double のセル配列がある場合は、次のことを試すことができます。

mycell = {'1.56548524'; '1.5265'; '-4.2616' ;'-0.2154' ;'2.15'};

あなたが試すことができます

mat = cellfun(@str2num,mycell)

于 2014-03-05T14:59:48.793 に答える