Octave

提供: ArchWiki
ナビゲーションに移動 検索に移動

関連記事

公式ウェブサイト より:

GNU Octave は主に数値解析を目的とした高水準インタプリタ言語です。線形ならびに非線形問題を数値的に解いたり、他の数値実験を行うことができます。データを可視化したり操作するためのグラフィック機能も備えています。通常、Octave は対話式のコマンドラインインターフェイスから使われますが、非対話式のプログラムを書くのにも使うことができます。Octave 言語は Matlab とよく似ているためプログラムを簡単に移植可能です。

インストール

octave パッケージをインストールしてください。

GUI インターフェイスは octave --gui で起動し、コマンドラインインターフェイスは octave-cli で起動します。

他のGUI インターフェイス

標準の GUI インターフェイスは octave パッケージに含まれています。それ以外の非公式 GUI フロントエンドも利用できます:

  • Cantor — A graphical user interface that delegates its mathematical operations to one of several back ends (Scilab, Maxima, Octave and others).
https://edu.kde.org/cantor/ || cantor
  • JupyterLab — Browser-based interactive environment which supports many programming backends, including Octave.
https://jupyterlab.readthedocs.io/en/stable/ || jupyterlab+jupyter-octave_kernelAUR

Octave-Forge

Octave は Matlab の Toolbox と同じようなパッケージのセットを Octave-Forge から提供しています。パッケージの完全なリストは こちら にあります。

パッケージは Octave から直接インストールすることも、AUR からインストールすることもできます。下を見て下さい。

Octave のインストーラーを使う

Octave のインストーラーを使うことでパッケージを管理できます。パッケージは ~/octave にインストールされます。-global オプションを使用した場合はシステムディレクトリにインストールされます。パッケージをインストールするには:

octave:1> pkg install -forge packagename
ノート: control など、Octave のパッケージの中には、コンパイルしてインストールするために Arch Linux のパッケージである gcc-fortran を必要とするものがあります。

パッケージをアンインストールするには:

octave:3> pkg uninstall packagename

Octave によって自動的にロードされるパッケージもありますが、ロードされない場合:

octave:4> pkg load packagename

または:

octave:5> pkg load all

パッケージがロードされているかどうかは pkg list を使って確認します。アスタリスクが付いているパッケージが既にロードされているパッケージです。

Octave の起動時に全てのパッケージがロードされるようにするには:

/usr/share/octave/site/m/startup/octaverc
## System-wide startup file for Octave.
##
## This file should contain any commands that should be executed each
## time Octave starts for every user at this site. 
 pkg load all

AUR を使う

いくつかのパッケージは AUR に存在します (パッケージを検索)。Octave-forge の新しいパッケージは Archlinux 用の Octave-forge ヘルパースクリプト を使うことで半自動的に Arch 用のパッケージを作成できます。

プロット

Qt がデフォルトのプロットバックエンドです:

>> available_graphics_toolkits
ans =
{
  [1,1] = fltk
  [1,2] = qt
}
>> graphics_toolkit
ans = qt

あるいは、FLTK または gnuplot をバックエンドに使うこともできます:

>> graphics_toolkit("gnuplot");

上記の変更を永続化させるには ~/.octaverc ファイルに追加してください。

Documentation タブのバグ

Octave バージョン 3.8.1 現在、公式 GUI の Documentation タブのリンクをクリックすると GUI がフリーズすることがあります。バグレポート #38305 によれば、Octave と Qt のシグナルハンドラが衝突するのが原因とされています。

解決法 としては次のコマンドで /usr/share/info/octave.info* にある Octave の Info ファイルを unzip することで解決します:

# gunzip /usr/share/info/octave.info*

もしくは Documentation タブは無視して別の Info リーダーを使って下さい。

Microsoft Excel スプレッドシートを読み込む

Octave で Microsoft Excel のファイルを読み込む方法は複数存在します。

オープンフォーマットに変換する

.xls ファイルを Octave で使う一番簡単な方法は LibreOffice の Calc (1024列まで制限) や Calligra SuiteSheets (32768例まで制限) を使って .csv.ods に変換することです。

変換したら Octave の csvread 関数を使って .csv ファイルを利用できます:

octave:1> csvread('myfile.csv');

.ods ファイルの場合、odsread 関数を含んでいる octave-ioAUR パッケージが必要です:

octave:1> odsread('myfile.ods');

.xlsx ファイルの場合 AURpython-xlsx2csvAUR パッケージを使います:

 xlsx2csv -t /path/to/save/location -x /path/to/myfile.xlsx 

Octave から xls ファイルを直接読み込む

XLS ファイルを使わざるをえず何らかの理由で CSV や ODS に変換できない場合、octave-ioAUR パッケージの xlsread 関数を使うことができます。

octave-ioAUR バージョン 1.2.5 から、'OCT' という名前のインターフェイスが追加されており、とくに依存パッケージを必要とせず .xlsx (.xls ではありません), .ods, .gnumeric の読み取りができます。ただし、Java ベースのインターフェイスは未だに存在します (特に .xls ファイルを読みこんだり、それらのファイル形式で書き出すときに必要)。