質問

いファイルは多くの空細胞として登場しNaNs利用の場合 cell2mat, が、問題は、私は平均値にできないので仕事のことを示すエラーのものがあります。Excelが一望できまNaN値であり、以下の手順で行い、同MATLAB?

また、皆様にお伝えしたくて書き込みファイルを使用 xlswrite:

xlswrite('test.xls',M);

いデータがすべての行を除く1.どう書いてい:

M(1,:) = ('time', 'count', 'length', 'width')

つまり、たい M(1,1)='time', M(1,2)='count', います。私からのデータ M(2,1)M(10,20).する方法を教えてください。

役に立ちましたか?

解決

を使用する「isfiniteの」関数は、すべてのNaNと無限大を取り除くために、

A = A(isFiniteの方(A))

  

%列ヘッダーを含むセル配列を作成します   列ヘッダ= { '列1'、 '2列'、 '3列'、 '4列'、 '列5'」「};

     

%最初の列ヘッダーを書きます   xlswrite( 'myFile1.xls'、列ヘッダ);

     

%、列ヘッダーの下に直接データを書き込みます   xlswrite( 'newFile.xls'、M 'シート1'、 'A2');

他のヒント

APが正しく指摘, 利用できる機能 isfinite ぐいのみ有限の値で行います。も利用できる機能 isnan.しかし、除去値から行列ができて、意図せざる結果の再構築おマトリクスへの行や列ベクトル:

>> mat = [1 2 3; 4 NaN 6; 7 8 9]  % A sample 3-by-3 matrix

mat =

     1     2     3
     4   NaN     6
     7     8     9

>> mat = mat(~isnan(mat))  % Removing the NaN gives you an 8-by-1 vector

mat =

     1
     4
     7
     2
     8
     3
     6
     9

他の代替では一部の機能から 統計ツールボックス 場へのアクセス権を持っていることを 対処行列を含むNaN値.からだを平均する場合がありますチェック nanmean:

>> mat = [1 2 3; 4 NaN 6; 7 8 9];
>> nanmean(mat)

ans =

     4     5     6     % The column means computed by ignoring NaN values



編集: お答えを追加質問の利用 xlswrite, このサンプルコードを示片ができますデータ

C = {'time','count','length','width'};  % A cell array of strings
M = rand(10,20);                        % A 10-by-20 array of random values
xlswrite('test.xls',C);           % Writes C to cells A1 through D1
xlswrite('test.xls',M,'A2:T11');  % Writes M to cells A2 through T11

Statistics Toolboxには、NaN値に対処するためのいくつかの統計関数があります。 nanmean、nanmedian、nanstd、nanmin、nanmaxなどを参照してください。

あなたはNaNでのはそうのような任意の数に設定することができます:

mat(isnan(mat))=7 // my lucky number of choice. 

遅すぎるかもしれませんが、...

x = [1 2 3; 4 inf 6; 7 -inf NaN];
x(find(x == inf)) = 0; //for inf
x(find(x == -inf)) = 0; //for -inf
x(find(isnan(x))) = 0; //for NaN
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top