2017-08-09 12 views
1

listdlgを使用してリストからファイルを選択できますが、名前は出力されません(選択されたエンティティの文字列)選択の選択したファイルの名前を出力で得る方法は? '例えばそれぞれの名前(文字列)を取得するためにインデックス値を使用する方法

[Selection, ok] = listdlg(Name,Value,...); 

% selection is nothing but a index of selected entities. 
+0

私は例を使って自分の投稿を更新しました。 –

答えて

2

ダイアログボックスがListStringパラメータの値として提供されるセルアレイが充填されています。 listdlgへの呼び出しの結果は、このセル配列へのインデックスです。

次のコードを考えてみましょう:

filelist=dir("/home"); 
S={filelist.name}; 
[Selection,ok]=listdlg('ListString',S,'SelectionMode','single'); 
if (ok) filename=cell2mat(S(Selection)) endif 

項目user1の選択は、それが出力

filename = user1 

べき行われた場合の更新

SelectionModemultipleあるときは、使用することができますcelldisp(S(Selection))。個々のアイテムを抽出するには、S{Selection(i)}を使用します。ここで、iの範囲は1〜length(Selection)です。

filelist=dir("/home"); 
S={filelist.name}; 
[Selection,ok]=listdlg('ListString',S,'SelectionMode','multiple'); 
if (ok) 
    for i=1:length(Selection) 
    disp(S{Selection(i)}) 
    end 
endif 
関連する問題