Main Content

uiputfile

ファイル保存のためのダイアログ ボックスを開く

説明

file = uiputfile は、ファイルを選択または指定するモーダル ダイアログ ボックスが開きます。ダイアログ ボックスは、現在のフォルダー内のファイルとフォルダーを一覧表示します。

  • ユーザーが有効なファイル名を指定し、[保存] をクリックすると、MATLAB®file にそのファイル名を返します。

  • ユーザーがダイアログ ボックスをキャンセルすると、MATLAB は 0file に返します。

メモ

  • uiputfile が正常に実行されると、ユーザーが指定した新しいファイルまたは既存のファイルの名前が返されます。ファイルは作成 "されません"

  • ダイアログ ボックスの視覚的特性は、コードを実行するオペレーティング システムに依存します。たとえば、一部のオペレーティング システムはダイアログ ボックスにタイトル バーを表示しません。ダイアログ ボックスのタイトルを関数 uiputfile に渡した場合、それらのオペレーティング システムではタイトルが表示されません。

[file,location] = uiputfile は、選択または指定したファイル パスを location に返します。ユーザーがダイアログ ボックスをキャンセルすると、MATLAB は両方の出力引数に 0 を返します。

[file,location,indx] = uiputfile は、ダイアログ ボックスで選択された [ファイルの種類] の値のインデックスを返します。インデックスは 1 から始まります。ユーザーが [キャンセル] ボタンまたはウィンドウの閉じるボタン (X) をクリックすると、MATLAB は、すべての出力引数に 0 を返します。

___ = uiputfile(filter) は、拡張子が filter に一致するファイルのみを表示します。一部のプラットフォームでは、uiputfilefilter と一致しないファイルも表示しますが、グレー表示になっています。関数 uiputfile は、ファイルの種類のリストに [すべてのファイル] を追加します。

filter がファイル名の場合、uiputfile[ファイル名] フィールドで選択されたファイル名を表示し、ファイルの拡張子を既定のフィルターとして使用します。

この構文を、前述の構文の出力引数と任意に組み合わせて使用します。

___ = uiputfile(filter,title) は、指定されたタイトルをもつダイアログ ボックスを開きます。既定のファイル フィルターを使用してフィルター処理し、カスタムのタイトルを指定するには、フィルター値に空の引用符を使用します。

file = uiputfile('','Select a File')

___ = uiputfile(filter,title,defname) でダイアログ ボックスが開き、defname で指定されたファイル名が [ファイル名] フィールドに表示されます。

すべて折りたたむ

ダイアログ ボックスを作成し、filteraniminit.m として指定します。コードが実行されると、[ファイル名] フィールドには指定されたファイル名が含まれ、[ファイルの種類] フィールドは *.m に設定されます。

[file,location,indx] = uiputfile('animinit.m');

File selection dialog box with the file name and save as type set. There are buttons to save and cancel in the bottom right.

[ファイルの種類] リスト ボックスに複数のファイルの種類を表示するには、セミコロンで入力引数 filter の各ファイル拡張子を区切ります。

filter = {'*.m';'*.slx';'*.mat';'*.*'};
[file, location] = uiputfile(filter);

File selection dialog box. The save as type drop-down lists the different file extension options.

ファイルの種類のリストを作成し、既定とは異なる説明を与える場合は、filter 入力値に cell 配列を使用します。複数のファイルの種類を 'MATLAB Files''Models' の説明に関連付けます。

入力 filter cell 配列の最初の列にはファイル拡張子が含まれ、2 番目の列にはファイルの種類の説明が含まれます。たとえば、列 1 の最初の項目は、セミコロンで区切られたいくつかの拡張子を含みます。これらのファイルの種類はすべて、説明 'MATLAB Files (*.m,*.mlx,*.fig,*.mat,*.slx,*.mdl)' と関連付けられます。

[filename, pathname, filterindex] = uiputfile( ...
{'*.m;*.fig;*.mat;*.slx;*.mdl',...
 'MATLAB Files (*.m,*.mlx,*.fig,*.mat,*.slx,*.mdl)';
 '*.m;*.mlx', 'program files (*.m,*.mlx)';...
 '*.fig','Figures (*.fig)';...
 '*.mat','MAT-files (*.mat)';...
 '*.slx;*.mdl','Models (*.slx,*.mdl)';...
 '*.*',  'All Files (*.*)'});

File selection dialog box. The save as type drop-down lists the different file extension descriptions.

[ファイルの種類] フィールドを MAT ファイルに設定して 'Workspace File' というタイトルのダイアログ ボックスを作成します。

[file,location] = uiputfile('*.mat','Workspace File');

File selection dialog box. The save as type drop-down list option is "MAT-files (*.mat)"

フィルターのワイルドカードと既定のファイル名を指定して [ファイル名] フィールドに既定のファイルを表示しますが、ユーザーはダイアログ ボックスにすべてのタイプのファイルを表示できます。

[file,location,indx] = uiputfile('*.*','File Selection','test.m');

File selection dialog box with many files displayed. The dialog title is File Selection and the text in the File name edit field is test.m.

[書き込むファイルを選択] ダイアログ ボックスを開き、ファイルを選択します。MATLAB では [名前を付けて保存の確認] ダイアログ ボックスが自動的に開きます。

  • 確認ダイアログ ボックスで [OK] をクリックすると、MATLAB では両方のダイアログ ボックスが閉じ、コマンド ウィンドウで選択した内容が表示されます。

  • 確認ダイアログ ボックスで [いいえ] をクリックし、[書き込むファイルを選択] ダイアログ ボックスで [キャンセル] をクリックすると、コマンド ウィンドウに User clicked Cancel. と表示されます。

[file,location] = uiputfile('*.m');
if isequal(file,0) || isequal(location,0)
   disp('User clicked Cancel.')
else
   disp(['User selected ',fullfile(location,file),...
         ' and then clicked Save.'])
end

入力引数

すべて折りたたむ

ファイル フィルター。文字ベクトル、文字ベクトルの cell 配列または string 配列として指定します。次の表に、filter 引数に渡すことができる入力のタイプと、対応するダイアログ ボックスの動作を示します。

入力動作
ファイル名

ダイアログ ボックスの [ファイル名] フィールドにこのファイル名が表示されます。ファイルの拡張子は既定のフィルター値です。

ファイル名にパスが含まれている場合は、ダイアログ ボックスを開いたときに指定したフォルダーが表示されます。それ以外の場合は、現在のフォルダーが表示されます。指定したフォルダーが存在しない場合、uiputfile はダイアログ ボックスを開いたときに現在のフォルダーを表示します。

  • 'icon.png'

  • 'C:\Documents\icon.png'

  • '..\icon.png'

フォルダー

ダイアログ ボックスにこのフォルダーの内容が表示されます。[ファイル名] フィールドが空の場合、フィルターは適用されません。フォルダー名を指定するには、filter の最後の文字がバックスラッシュ (\) またはスラッシュ (/) でなければなりません。

指定したフォルダーが存在しない場合、uiputfile はダイアログ ボックスを開いたときに現在のフォルダーを表示します。

  • 'C:\Documents\'

ファイル拡張子フィルター

ダイアログ ボックスに、一致するファイル拡張子をもつファイルのみが表示されます。

ユーザーが複数のフィルターから選択できるようにするには、各フィルターの項目を含む cell 配列または string 配列を指定します。ダイアログ ボックスのフィルター フィールドのドロップダウン メニューにフィルターが表示されます。

複数のファイル拡張子を含むフィルターを作成するには、単一の文字ベクトルまたは string 内で拡張子をセミコロン (;) で区切って指定します。

  • '*.m'

  • {'*.m';'*.mlx'}

  • {'*.m;*.mlx';'*.png;*.jpeg'}

説明を含むファイル拡張子フィルター

ダイアログ ボックスのフィルター フィールドに拡張子とその説明が表示されます。ユーザーは複数のフィルターから選択できます。

フィルターの説明を表示するには、cell 配列または string 配列で 2 列を指定します。最初の列にはファイル拡張子のリストが含まれます。2 列目には、対応する説明のリストが含まれます。これらの説明は、フィルター フィールドの標準の説明を置き換えます。説明を空にすることはできません。

  • {'*.m;*.mlx','Code files';'*.png;*.jpeg','Image files'}

ファイル フィルターにパスが含まれている場合、そのパスには次の文字を含めることができます。

  • .

  • ..

  • \

  • /

  • ~

たとえば、'../*.m' は、現在のフォルダーの 1 つ上のフォルダー内にある、拡張子 .m をもつすべてのコード ファイルを一覧表示します。

既定のファイル フィルターを使用するには、フィルターの値に空の引用符を指定します。たとえば、既定のファイル フィルターを使用して、カスタムのタイトルを指定するには、次の構文を使用します。

uiputfile('','Select File')

ダイアログ ボックスのタイトル。文字ベクトルまたは string スカラーとして指定します。

既定のダイアログ ボックスのタイトルを使用するには、タイトルの値に空の引用符を指定します。たとえば、ファイル フィルター、既定のタイトル、および [ファイル名] フィールドの値を指定するには、次の構文を使用します。

uiputfile('*.m','','myFile.m')

例: 'File Selector'

ダイアログ ボックスが開いたときに [ファイル名] フィールドに表示される既定のファイル名。文字ベクトルまたは string スカラーとして指定します。

defname の値にはパスが含まれるか、パスのみで構成されます。引数 defname には以下のいずれかの文字を使用できます。

.
..
\
/
~

defname をフォルダーのみに指定するには、defname の最後の文字をバックスラッシュ \ またはスラッシュ / として指定します。このように指定すると、MATLAB ではパスで指定されるフォルダーでダイアログ ボックスが開きます。存在しないパスを指定すると、MATLAB では現在のフォルダーでダイアログ ボックスが開きます。

例: 'myfile.m'

例: '../myfile.m'

出力引数

すべて折りたたむ

ユーザー指定のファイル名。文字ベクトルまたは string スカラーとして指定します。ユーザーは、ダイアログ ボックスでファイル名を選択するか、[ファイル名] フィールドでファイル名を入力するか、既定のファイル名 (指定している場合) を受け入れて、ファイル名を指定できます。ユーザーがダイアログ ボックスをキャンセルすると、MATLAB は file0 として返します。

ユーザー指定のファイル名へのパス。文字ベクトルまたは 0 として返されます。ユーザーがダイアログ ボックスをキャンセルすると、MATLAB は path0 として返します。

[ファイルの種類] インデックス。整数として返します。この図に示されているように、インデックスは [ファイルの種類] 行の選択に対応しています。インデックスは 1 から始まります。

Save as type drop-down list. The drop-down list contains four different file extensions with the first option labeled with indx = 1, the second with indx = 2, and so on.

ユーザーが [キャンセル] ボタンまたはダイアログ ボックスの閉じるボタン (X) をクリックした場合、あるいはファイルが存在しない場合、MATLAB は indx0 として返します。

詳細

すべて折りたたむ

モーダル ダイアログ ボックス

モーダル ダイアログ ボックスでは、モーダル ダイアログ ボックスに応答する前に他の MATLAB ウィンドウを操作することができません。

ヒント

  • MATLAB と MATLAB ツールボックス関数を使用してデータをユーザー指定のファイルと場所に書き込むには、uiputfile で返されるパスとファイル名を使用します。以下に例を示します。

    • テキスト ファイルにデータを書き込むための fprintf

    • グラフィックス ファイルにイメージを書き込むための imwrite

    • Microsoft® Excel® スプレッドシートに行列を書き込むための xlswrite。たとえば、このコードで行列 A を作成し、ユーザーからファイル名を取得するダイアログ ボックスを作成して、返された値から完全なファイル名を作成してから、行列をユーザー指定の Excel ファイルに書き込みます。

      A = [12.7 5.02 -98 63.9 0 -.2 56];
      [file,location] = uiputfile('*.xlsx');
      filename = fullfile(location,file);
      xlswrite(filename,A);
      

バージョン履歴

R2006a より前に導入