Main Content

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

uiputfile

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

説明

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

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

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

メモ

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

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

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

[file,path,indx] = uiputfile は、ダイアログ ボックスで選択された [ファイルの種類] の値のインデックスを返します。インデックスは 1 から始まります。ユーザーが [キャンセル] ボタンまたはウィンドウの閉じるボタン (X) をクリックした場合、またはファイルが存在しない場合、MATLAB は 0indx に返します。ユーザーがダイアログ ボックスをキャンセルすると、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,path,indx] = uiputfile('animinit.m');

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

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

ファイルの種類のリストを作成し、既定とは異なる説明を与える場合は、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 (*.*)'});

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

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

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

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

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

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

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

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

入力引数

すべて折りたたむ

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

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

.
..
\
/
~

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

例: 'myfile.m'

例: '../myfile.m'

ファイルの種類のフィルターの指定。文字ベクトル、文字ベクトルの cell 配列、または string 配列として指定します。MATLAB によって、ダイアログ ボックスに提示されるファイルの種類のリストに [すべてのファイル] が追加されます。filter 値にはワイルドカード文字 (*) を含めることができます。

例: *.m

例: 'MATLAB Files (*.m,*.mlx,*.fig,*.mat,*.slx,*.mdl)'

ダイアログ ボックスのタイトル。文字ベクトルまたは string スカラーとして指定します。既定のファイル フィルターを使用してフィルター処理し、カスタムのタイトルを指定するには、フィルター値に空の引用符を使用します。以下に例を示します。

uiputfile(' ','Select File')

例: 'File Selector'

出力引数

すべて折りたたむ

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

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

  • ユーザーがアスタリスク (*) または疑問符 (?) を含むファイル名をダイアログ ボックスの [ファイル名] フィールドに入力すると、MATLAB は [保存] ボタンのクリックに反応しません。ユーザーがキャンセルするか、ワイルドカード文字または疑問符を削除するまで、ダイアログ ボックスは開いたままです。この制限は、すべてのプラットフォームに適用され、これらの文字をファイル名で使用できるプラットフォームでも適用されます。

  • ユーザーが既存のファイル名を指定すると、警告のダイアログ ボックスが開いて、そのファイルが既に存在することを示し、ファイルを置換するオプションが表示されます。

    • ユーザーが警告ダイアログ ボックスで [はい] をクリックすると、MATLAB では既存のファイルが置き換えられて、ファイル名が返されます。

    • ユーザーが警告ダイアログ ボックスで [いいえ] をクリックすると、コントロールは uiputfile ダイアログ ボックスに戻り、ユーザーは別のファイル名を指定できます。

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

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

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

ユーザーが [キャンセル] ボタンまたはダイアログ ボックスの閉じるボタン (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,path] = uiputfile('*.xlsx');
      filename = fullfile(path,file);
      xlswrite(filename,A);
      

R2006a より前に導入