matlabメモ

行列の演算と操作

・行列要素の取り出しと置き換え

 例1 行列Xの要素で負の値を-999で置き換える。

       X(X < 0) = -999;

   例2 行列Xの負の値を持つ要素に360を加える。

   X(X < 0) = X(X < 0)+360;

 例3 NaNをゼロに置き換える。

   X(isnan(X))=0;になる場合がある。

・行列要素の関数演算

 例1 行列Aの各要素とスカラー量cの四則演算は、「+」、「-」、「*」、「/」を用いる。

   X=A+c, X=A-c, X=A*c, X=A/c

 例2 行列Aと行列Bの要素同士の乗算、除算は、それぞれ、「.*」、「./」を用いる。

   X=A.*B

   X=A./B

 例3 行列Xの要素の常用対数(基底10)を計算する。

   X=log10(X);

Xの要素が負の値のとき、計算結果が異常になる場合があるので、あらかじめ取り除くこと。

・NaNデータの取り扱い(from Kobori)

 例1isnan関数を使って(非)NaNのインデックスを作成しておくと便利。

   idx = ~isnan(data); % 非NaNのインデックスを作成('~' は否定の意)

   x = std(data(idx)); % 非NaNのみを対象に標準偏差を計算

 例2非NaNの要素だけを取り出したい場合、

   valid_data = data(~isnan(data));

 例3data自体からNaNを取り除いてしまいたい場合は、

   data(isnan(data)) = [];