Octave 3.0.3 Readme(翻訳)

このパッケージは Octave 3.0.3 としてビルドされました。このバージョンは以前と比べて以下のようなたくさんの新機能が追加されています。
  • 整数型
  • 固定小数点計算
  • 疎行列
  • GLPK (GNU Linear Programming Kit) ベースの線形計画法
  • 64bit コンパイラ対応
  • gzipとストリームをサポートしたことによる Matlab Ver7 のファイルとの互換性向上
  • Matlab 互換のグラフィックの取り扱い
  • Microsoft Visual C++ や MinGW (Minimalist GNU for Windows) との親和性
  • MEX (Matlabコンパイル済みファイル)インタフェースとの完全互換
  • 他たくさんのマイナーな機能向上や互換性向上


このパッケージで OCT/MEX ファイルを作成する際の注意

( C または C++ の ) ソースから OCT または MEX ファイルをビルドする為には、このパッケージをコンパイルしたのと同じバージョンの C++ コンパイラが必要です。この Octave パッケージは Microsoft Visual C++ 2008 を使ってコンパイルされており、マイクロソフトのサイトから同じバージョンの無料の Express Edition がダウンロードできます。
(訳注: バージョン違いとして 2005 がありますがそれではなく、2008 バージョンでなければなりません。)

Visual C++ はライセンス上 Octave と一緒に配布することが出来ません。一旦 Visual C++ がインストールされたら、 Octave のプロンプトから mkoctfile コマンドで OCT ファイルを生成できます。同様に mex コマンドで MEX ファイルが生成できます。
( 訳注: Visual C++ は IDE の起動環境で動的に環境変数を設定するので、その他のアプリケーション ( Octave 等 ) も何らかの方法で PATH や LIB 等の環境変数を明示的に設定しなければなりません。OCT/MEXファイルの作成メモ参照)


Octave への協力

Octave をよりよいシステムにするために援助するいくつかの方法があります。おそらくもっとも効果的な方法は、新たな問題を解決するために高い品質のコードを書いて提供し、それを他の人も自由に使えるようにすることです。とりあえず、我々のプロジェクトが希望している事のリストが http://www.octave.org/projects.html にあります。将来のバージョンへの要望もここにあります。

もし、あなたが Octave の為に有用な function を書いて、それを他の人にも使えるようにしたいと思ったら、メーリングリスト ( sources@octave.org ) に投稿してください。このメーリングリストに送られたメッセージは Octave を保守している人々に閲覧されるので、Octave の将来のバージョンに含めることを考慮されるかもしれません。メッセージはアーカイブ (http://www.octave.org/archive.org)もされるので、もしコードが採用されなかったとしても他の人々の役に立つ時を待つことができます。

もしあなたにとって Octave が十分役に立ったら、開発を続けるための寄付も考えてみてください ( http://www.octave.org/funding.html )。それがわずかな額であったとしても、開発したりサポートしたりするための時間に大きく貢献するかもしれません。

もし寄付やコードを提供することがなくても、見つけたバグや Octave をより有用にする方法を報告していただけると、より信頼性の高い Octave を作るのに役立ちます。


Ver 3.0 での、ユーザーから見える重要な変更の概要

  • Matlab グラフィクスとの互換性が向上。Matlabのグラフィクスの取り扱いと同様に働く、次のようないくつかのグラフィクス機能を搭載した:
    • subplot 機能が使用でき、また plot でファイルを作成する print function が使えます。
    • gnuplot 4.2 を使用しているなら、 線に RGB で色指定できます。
      Octave では引き続き 4.0 を使うことも出来ますが、Matlab スタイルの plot function を使っているかぎり線に任意の色を指定する方法はありません。古いバージョンの gnuplot では制限されたセットが選択されていて、 Octave から起動するか否かにかかわらず、これを行う確かな方法はありません。また端末にも依存します。つまり X11 端末でのある色指定は、ポストスクリプト端末で同じ指定をしても異なる色になります。gnuplot 4.0 で可能な RGB カラーは赤(R)、緑(G)、青(B)各 1bit で、8 通りの組み合わせがあります。正しくない値はすべて ( 前回の指定と? ) 同じ色にマップされます。
      このことは bar, contour, meshc, surfc 関数の patch オブジェクトに影響し、例えば bar や contour はモノクロ表示になります。次善策としては "colormap gmap40" と入力するとカラーマップをロードして、多くの場合何とか満足できる程度に bar や contour の表示がシンプルになります。
    • 線の幅を次の例のように制御できます。これはカラー機能の例でもあります。
      (ライン幅 = 4 、RGB色 = [1, 0, 0.5](赤紫) で x, y をプロットする)
line (x, y, "linewidth", 4, "color", [1, 0, 0.5]);
    • gnuplot 4.2 では、画像データを 2D プロットデータと一緒に表示できます。
    • 等高線のプロット ( contour ) では、線は三次元プロットではなく Octave の機能で二次元プロットとして生成されているので、他の二次元データを追加で表示できます。
    • gnuplot では拡張端末としてTeXインタープリタがエミュレートできます。gnuplot 4.0 ではポストスクリプト端末の上で「のみ」TeXインタープリタがサポートされます。 gnuplot 4.2 の下では、次の端末でサポートされます : aqua, dumb, png, jpeg, gif, pm, windows, wxt, svg, X11。
    • 次のプロットコマンドは古くなり、将来のバージョンの Octave では削除される可能性があります。またこれらのコマンドは、 Matlab形式でのプロットコマンド(plot, line, mesh, semilogx..等)では何の働きもしません。
__gnuplot_set__
__gnuplot_show__
__gnuplot_plot__
__gnuplot_splot__
__gnuplot_replot__
    • プロットのプロパティの値はあまり厳密にチェックされていません。不正な値を指定すると、結果は予測できません。
    • Octave はコマンドとデータを同じパイプを使って gnuplot へ送るようになりました。これによりデータファイルに関しての clutting / tmp 問題を避けることが出来ますが、プロットをマウスでズームインすることが出来なくなりました。これは、プロットしているデータがファイルに格納されていない場合にはズームが出来ないという gnuplot の制限です。gnuplot の新しいバージョン ( > 4.2.2 ) ではこの問題を解決するための作業が幾分か完了しています。gnuplot の開発リストのこのスレ(英語)を参照ください。

  • 関数の探索パスを設定する方法が変わりました。組み込み変数 LOADPATH に代わって、 addpath, rmpath, path 関数を使わなければなりません。これらの関数は Matlab と同様にカレントディレクトリを示す "." を認識します。

    パス文字列の先頭または末尾の「二重コロン」には、もはや特別な意味はありません。探索パスのすべての要素は Octave の開始時に明示的にパスに含まれます。パスを表示させるには path 関数を使用してください。

    「//」で終わるパス要素は、もはや再帰的には探索しません。代わりに、 addpath と genpath 関数を使ってディレクトリ全体をパスに追加してください。例えば次の指定は、 ~/octave とそれ以下のサブディレクトリを、探索パスの最初に挿入します。
addpath ( genpath ( "~/octave"));


  • Octave の以前のバージョンは、警告を制御するためにたくさんの組み込み変数 ( 例: warn_divide_by_zero ) を使用していました。これらの変数に代わり、警告は warning 関数の引数の warning identifiers (警告識別子)で制御するようになりました。
以前のやりかた
warn_divide_by_zero = false;
今後のやりかた
warning ( "off", "Octave:divide-by-zero" );
ユーザーのコードでも警告を制御するのにこの関数を利用できます。
warning ( "My-package:phase-of-the-moon",
          "the phase of the moon could couse trouble today" );
すべての警告はこのやり方で有効/無効が制御でき、さらにエラーへの変更が出来ます。
warning ( "on", "all" );
warning ( "off", "all" );
warning ( "error", "Octave:devide-by-zero" );
warning ( "error", "all" );
さらに、現在使用されている警告の状況を調査できます。(明示的に設定された警告のIDだけが返されます)
warning ( "query", ID)
warning ( "query" )
warining identifiers(警告識別子)の部分的なリストや、使い方の詳細はヘルプを見てください。
help warning_ids

  • すべての組み込み変数は、関数で設定するように変更されました。この変更により、ユーザー定義のパッケージと Octave 自身の内部変数について、インタープリタでの取り扱いを簡単で一貫したものに出来ました。多くの場合に於いて、内部変数を単純に読んでいるだけのコードは変更する必要はありませんが、内部変数を変更しているコードは変更する必要があります。
    例えば次のように書く代わりに、
PS1 = ">> ";
次のように書かなければなりません。
PS1 (">> ");
Octave の古いバージョンと新しいバージョンの両方で動作するコードを書くには、例えば次のようになります。
    if (exist ("OCTAVE_VERSION") == 5)
       ## New:
       PS1 (">> ");
    else
       ## Old:
       PS1 = ">> ";
    endif

  • Matlab との互換性の為に、 system 関数の出力の順序が変わりました。以前のものは、
[output, status] = system (cmd);
でしたが、これからは次のようになります。
[status, output] = system (cmd);

  • Matlab との互換性の為に、normcdf, norminv, normpdf, normrnd 関数は分布の計算に、平方偏差に代わって標準偏差を使用するように変更されました。

  • Matlab との互換性の為に、fsolve 関数の出力が変更されました。以前のものは、
  [x, info, msg] = fsolve (...);
でしたが、これからは次のようになります。
  [x, fval, info] = fsolve (...);

  • Matlab との互換性の為に、gamcdf, gaminv, gampdf, gamrnd, expcdf, expinv, exppdf, exprnd 関数は分布の計算に、1を超えるスケールファクタではなく標準的なスケールファクタを使用するように変更されました。(1で正規化された?)

(End of document)

最終更新:2009年01月05日 22:32
ツールボックス

下から選んでください:

新しいページを作成する
ヘルプ / FAQ もご覧ください。