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
もう1つの方法は、NaN値を含む行列を処理するように設計されたStatistics Toolboxのいくつかの関数(アクセスできる場合)を使用することです。あなたは平均を取ることに言及しているので、あなたはチェックしたいかもしれません: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
、このサンプルコードは、データを書き込むことができる1つの方法を示している必要があります。
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