2017-06-22 20 views
0

私は個別にベクトルとしてアクセスする必要のある2つの名前のないフィールドを持つ構造体を持っています。 MATLABのヘルプページにはフィールド名の例しかありません。私は無名のフィールドを取得するにはどうすればよいフィールド名なしのMatlab構造体配列へのアクセス

https://www.mathworks.com/help/matlab/matlab_prog/access-data-in-a-structure-array.html

編集

は例えば、私のデータは次のようになります。

0.5000 0.1338 
0.4999 0.1445 
0.4998 0.0716 

と好きではない:

x  y 
0.5000 0.1338 
0.4999 0.1445 
0.4998 0.0716 
+2

それはあなたが構造で無名のフィールドで何を意味するかは明らかではありません。定義によってすべてのフィールドには名前が必要です。質問にサンプルデータを含めることはできますか? –

+0

あなたは 'table 'や他のデータ型ではなく*構造体*を扱っていると思いますか?データ型を 'class(s​​)'でチェックすることができます。 's'はデータを保持する変数です。 – gnovice

+0

私のデータは明らかに構造内のテーブルです。私は、後者を意味するとき、カラムと同じ意味で用語フィールドを使用しました。私はそれが特にMATLAB構造のコンテキストを考えると不適切であった場所を見ます。ご協力いただきありがとうございます。 –

答えて

3

あなたはフィールド名先験的がわからない場合は、 fieldnamesを使用して取得し、戻り値を使用してアクセスします。

names = fieldnames(s); 
vec1 = s.(names{1}); 
vec2 = s.(names{2}); 

また、あなたはそれらを完全に無視して、ただstruct2cellを使用してセル配列に構造体フィールドの内容を配置することができます:

vecs = struct2cell(s); 
vec1 = vecs{1}; 
vec2 = vecs{2}; 
関連する問題