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

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

 Réponse acceptée

Kojiro Saito
Kojiro Saito le 28 Juin 2023
Modifié(e) : Kojiro Saito le 28 Juin 2023

0 votes

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 commentaires

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

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur MATLAB Compiler dans Centre d'aide et File Exchange

Produits

Community Treasure Hunt

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

Start Hunting!