2017-06-16 9 views
1

私は各イベントが発生した列ベクトルを含む各セルを持つ8×18の構造を持っています。私は、これらのフィールドのいくつかから単一の配列に連結されたデータをループしないで取得したいと考えています。興味のあるフィールドを1つの配列に垂直に連結する方法を見つけることができないようです。matlabは論理的にインデックスされた配列を連結します

私はセルあたり1〜5の出現で、次の構造を作成します例として:

s(62).vector(8,18).heading.occurrences=[1;2;3]; 
for i=1:62 
    for j=1:8 
     for k=1:18 
      y=ceil(rand(1)*5); 
      s(i).vector(j,k).heading.occurrences=rand(y,1); 
     end 
    end 
end 

今私はi = 1から一瞬で一定私を維持しながら、いくつかの細胞内でのすべてのオカレンスを取得したいです。私がしようとしたことである:中括弧やドットインデックス式から 期待一つの出力が、3つの結果がありました:

%fields of interest 
    a=[1 26 45]; 
    x=[s(1).vector(a).heading.occurrences]; 

これがエラーを生成します。

構造全体をループすることなくこれを行う方法はありますか?

答えて

1

ここに行く:魔法のように

ss=s(1).vector([1 26 45]);      
h=[ss.heading];    
cell2mat({h.occurrences}') 
+0

作品は非常にジェドをありがとうございました! :) s([1 2 3])。vector([1 26 45])のように同じことをしたいのであれば、どうしたらうまくいくのでしょうか?私はxx = s([1 2 3])、yy = xx.vector([1 26 45])を試しましたが、それは私に同じエラーを与えます。これはベクトル操作でも可能ですか? – Jasper

+0

@ジャスパー新しい質問をコメントとして控えてください。この回答を受け入れて、以前の関連する質問に言及する新しい質問を作成するか、質問を編集して質問に回答するために必要なすべての情報を含めることができます。 – m7913d

+0

すみません、私はこのフォーラムを初めて利用しています。私は質問を更新しました – Jasper

関連する問題