裏 RjpWiki

Julia ときどき R, Python によるコンピュータプログラム,コンピュータ・サイエンス,統計学

GNU Octave: 二次元配列の要素の総和

2022年07月06日 | Octave

>> x = [1 2 3 4 5; 6 7 8 9 10]
x =

    1    2    3    4    5
    6    7    8    9   10

のような場合,総和を求めるのに sum(sum(x)) としたのだが sum(x(:)) とも書けるそうだ。x(:) は行優先で一次元配列(ベクトル)に展開してくれる。

>> x(:)
ans =

    1
    6
    2
    7
    3
    8
    4
    9
    5
   10

>> sum(x(:))
ans = 55

>> sum(sum(x))
ans = 55

 

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

GNU Octave にも手を出してみる

2022年07月06日 | Octave

MATLAB は GNU Octave と部分的な互換性があるようだ。

そこで,MATLAB プログラムを動かすときには GNU Octave をインストールして使えばよいようだ。

https://octave.org/download.html

Windows では 7.1.0 がダウンロードできるようだ。
https://octave.org/download.html#ms-windows

macOS ではちょっと面倒なようだ。
https://github.com/octave-app/octave-app/releases
6.2.0 で我慢する。

====

GNU Octave の実行は他のアプリケーションと同じように,アイコンをクリックするだけ。

IDE 環境ウインドウが開く。コマンドウインドウになにか入力すれば,それが実行され,結果が表示される。


必要なパッケージの準備

例えば,以下のプログラムでは 「chi2cdf は statistics パッケージにあるよ!」 と言われる。

コマンドラインで statistics パッケージの最新バージョンを調べて(たとえば statistics-1.4.3.tar.gz のとき) wget でダウンロードする。

% wget http://downloads.sourceforge.net/project/octave/Octave%20Forge%20Packages/Individual%20Package%20Releases/statistics-1.4.3.tar.gz

パッケージを octave コマンドウインドウでインストールする(1回だけ)

>> pkg install -global statistics-1.4.3.tar.gz

パッケージを使用するとき(セッションごと)

>> pkg load statistics

使用するプログラム。

>> function [chisq, df, p] = ChiSquareTest(x)
    [nrow , ncol] = size(x);
    df = (nrow - 1) * (ncol - 1);
    colsums = sum(x, 1);
    rowsums = sum(x, 2);
    n = sum(rowsums);
    expectations = (rowsums * colsums) / n;
    Zscores = (x .- expectations) .^ 2 ./ expectations;
    chisq = sum(sum(Zscores));
    p = 1 - chi2cdf(chisq, df);
end

>> x = [55 22 16 7; 40 32 24 4];
[chisq, df, p] = ChiSquareTest(x)
chisq = 6.6385
df = 3
p = 0.084359

>> [chisq, df, p] = ChiSquareTest([10 5; 6 11])
chisq = 3.1373
df = 1
p = 0.076523

* プログラム中に日本語があると変なことが起きることがあるようだ(プログラムをコピペできない)。
* MATLAB のすべてが octave で利用できるというものではない。例えば,icdf('chi2', x, df) はないので,1 - chi2cdf(x, df) とするなど,エラー回避が必要になることもある。

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

PVアクセスランキング にほんブログ村

PVアクセスランキング にほんブログ村