OpenModelicaの使い方 User’s Guide解読_2

OpenModelica

引き続きUser’s Guideを読んでいきます。
6ページからの内容となります。
前回の記事はこちら

引き続きOpenModelica Shell(OMShell)を使ってサンプルのコマンドを実行していきます。
この例ではBubblesort Functionというある行列を降順に並び替える関数を使ってみます。
xは前回の紹介した1~12の関数です。
サンプルのファイルはインストールフォルダの/share/doc/omc/testmodelsに置かれています。

Bubblesort Function

実行結果は以下のようになります。User’s Guide記載の通りですが、、、

>> x:= 1:12
{1,2,3,4,5,6,7,8,9,10,11,12}

>> bubblesort(x)
{12.0,11.0,10.0,9.0,8.0,7.0,6.0,5.0,4.0,3.0,2.0,1.0}

>> bubblesort({4,6,2,5,8})
{8.0,6.0,5.0,4.0,2.0}

systemというコマンドでUNIXコマンドを実行できるようです。
ここではcat(ファイルの結合やコピー)というコマンドを実行しています。
この例ではbubblesort.moをコピーしています。
ここまで説明少なくわかりづらいですが、
C:\Users\[ユーザ名]\AppData\Local\Temp\OpenModelica
がデフォルトの作業フォルダになっており、ここにbubblesort.moがコピーされています。

>> system("cat '"+getInstallationDirectoryPath() +"/share/doc/omc/testmodels/bubblesort.mo' > bubblesort.mo")
0

>> readFile("bubblesort.mo")
"function bubblesort
  input Real[:] x;
  output Real[size(x,1)] y;
protected
  Real t;
algorithm
  y := x;
  for i in 1:size(x,1) loop
    for j in 1:size(x,1) loop
      if y[i] > y[j] then
        t := y[i];
        y[i] := y[j];
        y[j] := t;
      end if;
    end for;
  end for;
end bubblesort;

"

途中の「0」はコマンドがエラーなく実行できたことを示しています。
readFileでファイルの中身を表示します。bubblesort.moをメモ帳等で開いても中身を確認できます。

次はディレクトリを変更するcdコマンドです。
dirのようにパスを変数に入れることができます。

>> dir:=cd()
"C:/Users/[ユーザ名]/AppData/Local/Temp/OpenModelica"

>> cd(getInstallationDirectoryPath() +"/share/doc/omc/testmodels/")
"C:/Program Files/OpenModelica1.22.1-64bit/share/doc/omc/testmodels"

>> cd(dir)
"C:/Users/[ユーザ名]/AppData/Local/Temp/OpenModelica"

今回はここまでにします。
8ページまで進みました。。。

コメント

タイトルとURLをコピーしました