0

FilterSpecs のカスタム セットで uigetfile を使用しています。文は次のとおりです。

[FileName,PathName,FilterIndex] = uigetfile({'*.wav';'*.mp3'},'Open Audio File');

ご覧のとおり、私の FilterSpec は{'*.wav';'*.mp3'}完全に正常に動作します。私の問題は単純です。matlab が常にAllFiles(*.*)FilterSpecs に追加されているだけです。私はMatlabのドキュメントを検索しましたが、文字通り次のように述べて います、しかし問題は、文字列を使用せずにカスタム FilterSpec を指定する別の方法が見つからないことです。これが愚かな質問になる場合は申し訳ありません。前もって感謝します

4

2 に答える 2

0

「AllFiles」はuigetfile()常に MATLAB によって追加されるため、(簡単に) 削除する方法はありません。

本当にやりたい場合は、uigetputfile_helper()コードをコピーして ( MYuigetputfile_helper()たとえば)、変更する必要があります。そして、MYuigetfile()ここで同じアイデアから呼び出します。

変更は、私のバージョンの 311 行目と 319 行目あたりですuigetputfile_helper()。つまり、

% Now add 'All Files' appropriately.
if (addAllFiles)
  % If a string, create a cell array and append '*.*'.
  if (~iscell(returned_filter))
    returned_filter = {returned_filter; '*.*'};
    % If it is a cell array without descriptors, add '*.*'.
  elseif (size(returned_filter, 2) == 1)
     returned_filter{end+1} = '*.*';
  end
end

お役に立てば幸いです...楽しんでください!

于 2013-02-26T07:33:51.077 に答える
0

前の投稿者の回答から数行バックアップすると、コメントが表示されます。

記述子を含むセル配列がない限り、すべての場合に「すべてのファイル」を追加します。

このコメントは、uigetputfile_helper の 245 行目にあります。に電話するときにファイルの種類を説明するだけで、表示されuigetfileませんAll Files (*.*)

例:

[fname,pname] = uigetfile({'*.m','MATLAB Code (*.m)';'*.mat','MATLAB Data (*.mat)'});
于 2014-05-22T15:45:30.113 に答える