裏 RjpWiki

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

MATLAB プログラムを Julia に書き換え

2021年01月29日 | ブログラミング

細かいところは最終的には頭を使った手作業になるが,エディタレベルでの作業についてまとめておく。

  • 文末が ; であるが,Julia では問題ないのでそのままにしておく。
  • if 文,while 文 の論理式は ( )  で囲まれているが,Julia では問題ないのでそのままにしておく。
  • 関数が function [戻り値リスト] = 関数名(入力引数)になっているが,"[戻り値リスト] =" を取り除く。
  • 注釈行は % で始まる % を # に全置換する。
  • プログラミングスタイルにもよるが,関数名と ( の間の空白は許されないので "関数名(" のようにする。
  • persistent 変数は必要ないので,persistent 文をコメントアウトする。
  • 文字列は ' ではなく" でくくるので,全置換する(' のままのものもあるので,確認しつつ置換する)。
  • 論理式の否定演算子が ~ なので,! に全置換する。
  • 出力文が fprintf() なので,@printf() に置換する。  "fprintf ( 1, "を "@printf(" に全置換する。先頭に "using Printf"を加えておく。println() に置換してもよいが format 付の場合には @printf() が妥当。
  • zeros(), ones() は,ベクトルであっても,二次元目が 1 になっているので,zeros(n, 1) のようなものを zeros(1),さらに型を考えて zeros(Int64, n), ones(Float64, n) のように直す。
  • ベクトル,配列は V(i),A(i, j) のようになっているので,V[i], A[i, j] にする。全置換と手作業の組み合わせ。
  • 継続行は ... で終わるが,これは単に ... を消去するだけでよい。
  • 論理値を 0/1 で表すので,false/true に変換。
  • 一様乱数の使用は [ r, seed ] = r8_uniform_01 ( seed ) のようになっているので,r = rand() のようにする。
  • 戻り値がちゃんと返されるように,必要なら return 文で指定する。
  • この辺りまで来たら,REPL で関数全体をコンパイルし,エラーメッセージに従ってプログラムを修正する。
  • 別の記事にも書いたが,Julia での for ループ,while ループに変数スコープがあるために,"変数名 not defined" に対応する。
コメント    この記事についてブログを書く
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする
« Julia の変数スコープ | トップ | Julia で R を使う(その1) »
最新の画像もっと見る

コメントを投稿

ブログラミング」カテゴリの最新記事