主要内容

このペ,ジの翻訳は最新ではありません。ここをクリックして,英語の最新版を参照してください。

コンパ▪▪ルしたアプリケ▪▪ションのMATLABデタファル

函数プラグマを使用したMATLABデタファルの明示的な読み込み

既定では,コンパesc escラは依存関係の解析でmatlab®デタファル(matファル)を除外します。MATLAB编译器を使用した依存関係の解析を参照してください。

コンパラでmatファル内のデタを明示的に調べる場合,matlabコドを記述するときに% #函数プラグマを指定する必要があります。

たとえば,深度学习工具箱™を使用してソリューションを作成する場合,コード内で% #函数プラグマを使用してgmdistributionクラスなどへの依存関係を含める必要があります。

読み込み関数と保存関数

配布されたアプリケーションがMATLABデータファイル(垫ファイル)を使用している場合は,関数负载および関数保存をコ,ディングしてデ,タを操作し,将来処理するために保存すると便利です。

  • isdeployedを使用して,コ,ドが実行されるのはmatlabワ,クスペ,ス内なのか外なのかを決めます。

  • 哪一个(絶対パスを検索するため)を使用してデタファルを指定し,ctfrootの位置を基準にして定義します。

  • 世纪挑战集团の実行後,すべてのmatファescルは変更されません。これらのファ▪▪ルは配布可能なア▪▪カ▪▪ブへの書き込み時に暗号化されません。

配布可能なアカブの詳細は,配布可能なアカブを参照してください。

ctfrootの詳細は,ctfrootのリファレンスペ,ジを参照してください。

MATLABの内外でMATLABデータを処理するためにテンプレートとして以下の例を使用してください。

関数load / saveを使用して,配布されたアプリケ,ションのMATLABデ,タを処理

次の例は,3のmatlabデタファルを指定します。

  • user_data.mat

  • 用户数据\ extra_data.mat

  • . . \ externdata \ extern_data.mat

  1. matlab_root\走读生\ \编译器\ Data_Handling例子へ移動します。

  2. 以下の世纪挑战集团コマンドで,ex_loadsave.mをコンパ@ @ルします。

    MCC -mv ex_loadsave。M -a 'user_data。Mat ' -a '.\userdata\extra_data。Mat ' -a '..\externdata\extern_data.mat'

ex_loadsave.m

这个例子展示了如何在%部署模式下对数据文件使用% "load/save"函数。本例中有三个源数据文件%。% user_data。用户数据\extra_data。Mat % ..\externdata\extern_data. txt使用mcc命令编译这个例子:% mcc -m ex_loadsave。M -a 'user_data。Mat ' -a % '.\userdata\extra_data. txtMat“% -a”..\externdata\extern_data.”当前MATLAB主文件目录下的所有文件夹将被包含为ctfroot的相对路径;所有其他文件夹的%文件夹%结构都包含在%磁盘驱动器根目录下的可部署归档文件中。 % % If a data file is outside of the main MATLAB file path, % the absolute path will be % included in deployable archive and extracted under ctfroot. For example: % Data file % "c:\$matlabroot\examples\externdata\extern_data.mat" % will be added into deployable archive and extracted to % "$ctfroot\$matlabroot\examples\externdata\extern_data.mat". % % All mat/data files are unchanged after mcc runs. There is % no encryption on these user included data files. They are % included in the deployable archive. % % The target data file is: % .\output\saved_data.mat % When writing the file to local disk, do not save any files % under ctfroot since it may be refreshed and deleted % when the application isnext started. %==== load data file ============================= if isdeployed % In deployed mode, all file under CTFRoot in the path are loaded % by full path name or relative to $ctfroot. % LOADFILENAME1=which(fullfile(ctfroot,mfilename,'user_data.mat')); % LOADFILENAME2=which(fullfile(ctfroot,'userdata','extra_data.mat')); LOADFILENAME1=which(fullfile('user_data.mat')); LOADFILENAME2=which(fullfile('extra_data.mat')); % For external data file, full path will be added into deployable archive; % you don't need specify the full path to find the file. LOADFILENAME3=which(fullfile('extern_data.mat')); else %running the code in MATLAB LOADFILENAME1=fullfile(matlabroot,'extern','examples','compiler', 'Data_Handling','user_data.mat'); LOADFILENAME2=fullfile(matlabroot,'extern','examples','compiler', 'Data_Handling','userdata','extra_data.mat'); LOADFILENAME3=fullfile(matlabroot,'extern','examples','compiler', 'externdata','extern_data.mat'); end % Load the data file from current working directory disp(['Load A from : ',LOADFILENAME1]); load(LOADFILENAME1,'data1'); disp('A= '); disp(data1); % Load the data file from sub directory disp(['Load B from : ',LOADFILENAME2]); load(LOADFILENAME2,'data2'); disp('B= '); disp(data2); % Load extern data outside of current working directory disp(['Load extern data from : ',LOADFILENAME3]); load(LOADFILENAME3); disp('ext_data= '); disp(ext_data); %==== multiple the data matrix by 2 ============== result = data1*data2; disp('A * B = '); disp(result); %==== save the new data to a new file =========== SAVEPATH=strcat(pwd,filesep,'output'); if ( ~isdir(SAVEPATH)) mkdir(SAVEPATH); end SAVEFILENAME=strcat(SAVEPATH,filesep,'saved_data.mat'); disp(['Save the A * B result to : ',SAVEFILENAME]); save(SAVEFILENAME, 'result');