MATLABでサクッとプラットフォームの判定をする
2595 ワード
最近、MATLABをWindowsとLinuxで使う機会があり、どちらの環境でも動作するスクリプトを書くにはどうしたらいいのか調べたので、あんまり需要がなさそうですが備忘録として残します。
スクリプトにはプラットフォーム固有の書き方が変わる箇所が含まれていることを前提とします。[1]
実行しているコンピュータの情報を取得する関数
MATLABには、computerという関数があります。
この関数の戻り値を文字列操作して、プラットフォームの判別を行うことができます。
% computer の戻り値を操作したプラットフォーム判定(例)
str = computer();
if contains(str,'WIN')
% Windowsのみ行う処理
elseif contains(str,'MAC')
% Macのみ行う処理
elseif contains(str, 'LNX')
% Linuxのみ行う処理
else
% サポートしてないプラットフォーム
end
もうちょっと楽なやり方が
MATLABは以下の便利な関数が用意されています!
- ispc
- isunix
- ismac
これら関数の実行結果は次のようになります。
WindowsはWindows10, Windows11を、LinuxはUbuntu 20.04で動作を確認しています。[2]
ispc | isunix | ismac | |
---|---|---|---|
Windows | 1 | 0 | 0 |
Mac | 0 | 1 | 1 |
Linux | 0 | 1 | 0 |
実行環境がMacの場合のみ、ismac
とisunix
で 1 が帰ってくることに注意する必要がありますが、ifの順序を間違えなければ問題ありません。
% isxxx を使ったプラットフォーム判定
if ismac
% Macのみ行う処理(isunixより先に判定しておく)
elseif isunix
% Linuxのみ行う処理
elseif ispc
% Windowsのみ行う処理
else
% サポートしてないプラットフォーム
end
文字列操作の場合よりも、シンプルな書き方になりました。
まとめ
is***
を使うと、サクッと動作しているプラットフォームを判定できる
参考資料
脚注
Author And Source
この問題について(MATLABでサクッとプラットフォームの判定をする), 我々は、より多くの情報をここで見つけました https://zenn.dev/kikd/articles/9219c87bffbc2c著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Collection and Share based on the CC protocol