2017-08-13 13 views
1

Matlabはこの点で私を狂わせてしまいます。私は2次元配列の内部配列にアクセスしたいだけです。Matlabは2次元配列の内部配列にアクセスしています

例えば:

A = [1,1; 2,2; 3,3] 
B = [4,4; 5,5; 6,6] 
C = [7,7; 8,8; 9,9] 
D = [0,0; 1,2; 3,4] 

E = [A,B,C,D] 

どのように私は、例えば入手できますかBEのうち、もう一度?これにより

私が意味X = [4,4; 5,5; 6,6]

+2

私は質問を理解しているか分からない。使用する構文は配列を新しい配列に連結しますが、配列の配列ではありません。 配列の配列が必要な場合は、MatLabで理想的ですが、E = {A、B、C、D}のセルを使用できます。それからあなたは私が探していたE {2} – crown42

+0

@ crown42 thatsを使ってBを得ることができます。 thx :) – user1234

+0

'X = E(:, 3:4)'? – beaker

答えて

3

のような正確に同じ書き込みSTYLに使用する構文は、それが配列の配列ではなく、新しいものに配列を連結します。 配列の配列が必要な場合は、セルE = {A、B、C、D}を使用できます。その後、E {2}を使ってBを戻すことができます。

セルは一般的なコンテナです。各要素には任意のものを含めることができ、同じデータ型である必要はありません。参照What is a cell?

2

あなた連結A、B、C、D水平に新しいアレイEに。他の答えが指摘したように、それは配列の配列ではありません。新しい配列が必要なものだとします。あなたはEから元Bを抽出したい場合は、この場合には両方が3×2です、Bのサイズを知っておく必要があります。だから、あなたは、次の操作を行うことができます:それはちょうど割り当てを書くための方法であるため、

X = E(:, 3:4); % 3 is size(A,2)+1, numel(3:4) is size(B,2) 

はまた、私は、あなたが本当に「文体」を意味するものではありませんでしたと思います。