2

MatlabとOctaveのcov(共分散)関数を使用しています。実際、私はOctaveを使用していますが、最終的には両方で機能する必要があります。この関数には、正規化NまたはN-1のどちらで実行するかを示すオプションの2番目または3番目のパラメーターがあります。

これを行うと:(cov(points,1)ポイントは4x2行列です)次のエラーが発生します:

error: cov: x and y must have the same number of observations

一般的な注意点として、Matlab / Octaveが2番目のパラメーターが別のマトリックスであるかオプションのパラメーターであるかをどのように区別できるかを知りたいと思います(2つまたは3つのパラメーターを持つことができるため)。

具体的には、どうすれば問題を解決できるのでしょうか。

Matlab cov()ドキュメント: http: //www.mathworks.de/help/techdoc/ref/cov.html
Octave cov()ドキュメント:http ://www.gnu.org/software/octave/doc/interpreter/Correlation -and-Regression-Analysis.html

編集:Ubuntu12.04でOctave3.2.4を使用しています編集
2:解決策は、新しいバージョンのOctaveをインストールすることです。この機能は3.2以降に実装されました。

4

2 に答える 2

2

これはOctaveのバグのように見えます(少なくともバージョン3.0.5では)。Matlabでは正常に動作します(少なくともバージョン7.10では)。

もちろん、回避するには、次のように計算するだけです。

cov(a) * (N-1) / N
于 2012-05-27T11:52:49.957 に答える
1

を入力し、削除されたものは存在しないhelp covことに注意してください。opt

さらに良いことに、

gedit /usr/share/octave/3.2.4/m/statistics/base/cov.m

それを古い新しいコードと比較します

Optは最近なくなりました。その間、オリのトリックを使用してください

編集:私はそれを取り戻します、これは新しい機能です。どのバージョンのOctaveがそれを使用しているかはわかりませんが、アップグレードが必要です。リポジトリが見つかった場合は、不安定なシナプスアップグレードを実行するか、ソースからビルドします。

編集2:2011年1月に追加された機能(3.4.1)。3.2.4は2010年1月にリリースされました。現在のバージョンは3.6.1です。

于 2012-05-27T12:36:25.660 に答える