MATLAB Compiler はデータファイルを使用するプログラムをスタンドアロンアプリケーション化する際に、データファイルを自動で含ませることはしません。
データファイルを含ませるためには以下の 3 つの方法があります。
1. データファイルを CTF ファイルの一部として含ませます。たとえば、mydata.txt というデータファイルを使用する myfun.m というプログラムをコンパイルする場合、以下のようなコードで行います。
>> mcc -m myfun.m -a mydata.txt
この場合、mydata.txt ファイルはCTFファイルに含まれ、スタンドアロンアプリケーションと関連付けられます。複数のデータファイルを含ませる場合、-a オプションを使用します。
>> mcc -m myfun.m -a mydata1.txt -a mydata2.txt -a mydata3.txt
CTF フォルダ内で、データファイルのパスをフルパスで取得するには CTFROOT 関数を使用します。
function myfun
disp(fullfile(ctfroot, mfilename, 'mydata.txt'));
2. スタンドアロンアプリケーションの EXE ファイルと CTF ファイルと同じフォルダーにコピーします。コード内ではパスの指定は行わずにファイル名のみで指定します。たとえば、 mydata.txt ファイルを開くには以下のコマンドを使用します。
fid = fopen ('mydata.txt');
関連する Article もご覧ください。
3. 絶対パスによりデータファイルを指定します。これはシステム上に存在するデータファイルを直接参照する、最も簡単な方法です。たとえば、datafiles というフォルダ内の mydata.txt ファイルを参照するためには、以下のコマンドを使用します。
fid = fopen ('C:\datafiles\mydata.txt');