9
>> C = [{1} {2} ; {'@CF'} {2}] 
C = 

[  1]    [2]
'@CF'    [2]


>> whos C
  Name      Size            Bytes  Class    Attributes

  C         2x2               478  cell  

どうすれば次のように変換できますかCdouble

>> C
C = 
1    2
NaN  2

私は試しましstr2double(C)た。それは戻ります:

   NaN   NaN
   NaN   NaN
4

3 に答える 3

12
C = [{1} {2} ; {'@CF'} {2}]

C = 

    [  1]    [2]
    '@CF'    [2]

D = cellfun(@isnumeric,C);
C(~D)={nan}

C = 

    [  1]    [2]
    [NaN]    [2]

cell2mat(C)

ans =

     1     2
   NaN     2
于 2012-07-17T15:47:00.050 に答える
7

cellfunによってクエリされたisnumericで非数値を検索します。これを論理インデックスとともに使用して、数値を抽出します。

C = [{1} {2} ; {'@CF'} {2}];
isnum = cellfun(@isnumeric,C);
result = NaN(size(C));
result(isnum) = [C{isnum}];
于 2012-07-17T15:51:07.597 に答える
1

さて、ここではデータ型が混在しているので、それを行うための非常に簡単な方法はありません。

データが必要な場所がわかっている場合、私が考える最も簡単な方法は、単に使用することです。cell2mat

IE:cell2mat(C(1,1))1をdoubleとして返します。

于 2012-07-17T15:45:51.400 に答える