2016-04-25 5 views
0

1xNの配列を保持するプロパティ(feature)を含むクラスの配列(a、サイズMx1と呼びます)があります。私はオブジェクトの各featureプロパティの行を含むMxNである新しい行列を取得しようとしています。たとえば:現在、私は次のように使用してきたオブジェクトの配列プロパティの行列

ans = [1 2 3 4; 5 6 7 8; 9 10 11 12] 

ans = cell2mat({a.feature}') 

私が感じるしかし

M = 3 
N = 4 
a(1,1).feature = [1 2 3 4] 
a(2,1).feature = [5 6 7 8] 
a(3,1).feature = [9 10 11 12] 

、その後、いくつかの機能を考えると、答えはと終わるだろうセルに変換したり、寸法を切り替えたり、マトリックスに変換したりせずにこれを行う方法があるはずです。私は正しいのでしょうか、これが問題を解決する最良の方法でしょうか?私はそのような機能をドキュメントで見つけることができませんでした。

答えて

1

オブジェクトの配列を持ち、ドット参照を使用してプロパティにアクセスすると、comma separated listが返されます。このカンマ区切りリストcan be passed to a functionは、複数の入力引数として表示されます。

この場合、このカンマ区切りリストをcatに渡して、各値を最初の次元に沿って次に連結することを指定できます。だから、これは単純になる:

features = cat(1, a(1).feature, a(2).feature, a(3).feature, ..., a(end).feature); 

features = cat(1, a.feature) 

%// 1  2  3  4 
%// 5  6  7  8 
%// 9 10 11 12 

これは、機能的に同等です

関連する問題