引き続きUser’s Guideを読んでいきます。
6ページからの内容となります。
前回の記事はこちら。
引き続きOpenModelica Shell(OMShell)を使ってサンプルのコマンドを実行していきます。
この例ではBubblesort Functionというある行列を降順に並び替える関数を使ってみます。
xは前回の紹介した1~12の関数です。
サンプルのファイルはインストールフォルダの/share/doc/omc/testmodelsに置かれています。
実行結果は以下のようになります。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ページまで進みました。。。
コメント