MATLAB Compilerで作​成したEXEファイル​から、MATLABス​クリプト(.mファイ​ル)で定義されるコマ​ンドを読み込む方法は​ありますか?

3 views (last 30 days)
航平
航平 on 27 Jun 2023
Commented: 航平 on 28 Jun 2023
ユーザによって編集されるMATLABスクリプトによって定義される変数をEXEファイルから読み込む方法を探しています。
例えば、ユーザが[DataSetting.m]で定義したデータセットを[PlotData.exe]でプロットしたい場合、どのような方法があるでしょうか。
[DataSetting.m] : ユーザが編集可能
dataset=[1 2 3];
[PlotData.exe] : データをプロットする実行ファイル
%DataSetting.mで定義される変数を読み込む
%?
%プロット
plot(dataset);

Accepted Answer

Kojiro Saito
Kojiro Saito on 28 Jun 2023
Edited: Kojiro Saito on 28 Jun 2023
mファイルを実行するにはMATLABが必要になってしまい、PlotData.exeからMATLABを呼び出すという形になりMATLAB Compilerでパッケージ化してデプロイする意図が薄れてしまいます。
.mや.mlx以外で、例えば.csvや.xlsxなどでデータを定義するようにして、PlotData.exeの中でreadtablereadmatrixなどでファイルから値を読み取るようにしたほうが良いと考えます。
【追記】
データの規模が大きくCSVなどのファイルでは難しいとのことで、mファイルとevalを使った方法を記載します。evalは文字列を入力引数に入れてMATLABの関数を実行するので、セキュリティ的なリスクも伴います。
str = readlines('DataSetting.m'); % DataSetting.mにはdatasetとx、yを定義
for n=1:length(str)
eval(str(n))
end
%プロット
plot(dataset)
figure;plot(x,y)
  3 Comments
Kojiro Saito
Kojiro Saito on 28 Jun 2023
回答を更新しました。MATLABの文法で記述した変数だと.matファイルにしておくのがベストですが、MATLABの無い環境での編集が難しいため、当初通り.mファイルを使う例を載せました。
航平
航平 on 28 Jun 2023
大変参考になりました。
ご回答いただきありがとうございました。

Sign in to comment.

More Answers (0)

Categories

Find more on MATLAB Compiler in Help Center and File Exchange

Products

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!