2017-03-10 7 views
0

私は、これは明白ですが、私はインターネット上で解決策を見つけることができませんでした確信している... MATLABでMatlabで複数の回答をリストに結合するにはどうすればいいですか?

私はこれを行う:

私は上のすべてのファイル名を格納したい
> list = dir('some_directory'); 
> list 

list = 
    3×1 struct array with fields: 
    name 
    folder 
    date 
    bytes 
    isdir 
    datenum 

リスト。私はlist.nameを呼び出す場合、私はちょうど複数回答

> list.name 
ans = 
some_file_1.mat 

ans = 
some_file_2.mat 

ans = 
some_file_3.mat 

私はこれを試してみましたが、それは

> dirlist = list.name 
ans = 
some_file_1.mat 
その後、

私はこれを試してみましたがうまくいきませんでしたし、それが動作しませんでした

を取得

> dirlist = [list.name] 
ans = 
some_file_1.matsome_file_2.matsome_file_3.mat 

答えて

4

セルにリストを保存することができます。

dirlist = {list.name}; 
またあなたも初期構造の個々の要素にアクセスすることができ :

list(1).name; 
... 
list(20).name; 
etc... 

あなたも、変数nameを救うことができるエディット

dirlist{1}; 
... 
dirlist{20}; 
etc.. 

:あなたは、このような個々の項目を呼び出すことができます

この変数のみを含む新しい構造体で:

dirlist = struct('name',{list.name}); 
+0

私の問題は解決しましたが、私はまだ感じています私はなぜリストとセルの場合の異なる動作がmatlab – gota

+0

変数 'list'であるのか理解できません。この場合、構造体です。 構造体のさまざまな要素にアクセスするには、構造体のエントリを呼び出す必要があります。 エントリ1にアクセスしたい場合: 'list(1).name' は最初のエントリを生成します。 したがって、セルの代わりにそのセルで作業したり、不要なフィールドを持たずに新しい構造体に_name_の構造体を保存することもできます。 文字列の長さが異なり、行列に集約できないため、ベクトルで試した内容は機能しません – Giezi

関連する問題