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

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

 採用された回答

Kojiro Saito
Kojiro Saito 2023 年 6 月 28 日
編集済み: Kojiro Saito 2023 年 6 月 28 日

0 投票

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 件のコメント

航平
航平 2023 年 6 月 28 日
ご回答いただきありがとうございます。
今回の例でDataSetting.mにあたるデータ定義ファイルの規模が大きく、csvやxlsxへの置き換えに手間がかかるため、可能であればそのまま使いたいという状況を想定しています。
MATLABの文法で記述された変数、構造体を、MATLAB Compilerで作成したEXEファイルから読み込む方法は無いというご回答でよろしいですか。
Kojiro Saito
Kojiro Saito 2023 年 6 月 28 日
回答を更新しました。MATLABの文法で記述した変数だと.matファイルにしておくのがベストですが、MATLABの無い環境での編集が難しいため、当初通り.mファイルを使う例を載せました。
航平
航平 2023 年 6 月 28 日
大変参考になりました。
ご回答いただきありがとうございました。

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

ヘルプ センター および File ExchangeMATLAB Compiler についてさらに検索

質問済み:

2023 年 6 月 27 日

コメント済み:

2023 年 6 月 28 日

Community Treasure Hunt

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

Start Hunting!