A = rand(2,2,2); と言います。[a,b,c] = find(A == A(1,2,2))
a=1 b=4 c=1 を得た
何?
A = rand(2,2,2); と言います。[a,b,c] = find(A == A(1,2,2))
a=1 b=4 c=1 を得た
何?
==
代入演算子の代わりに等価を使用し=
ます。
A = rand(2,2,2); [a,b,c] = find(A == A(1,2,2))
FINDのドキュメントを参照してください。出力引数はすべての方向ではなく、行と列のみです。MATLAB は 2 番目の方向に沿って 3 番目の方向を連結し、4 番目の列を返すようです。一致するものが 1 つしかないため、最後の引数は 1 です。
FIND関数からの出力は、 2 組のインデックス (a
およびb
) とそれらのインデックスの値 ( c
) です。2 次元を超える行列の場合、2 番目のインデックスは線形インデックスになります。
あなたの例では、行うときに論理配列を作成しますA == A(1,2,2)
。indexに1
(つまり)の値を持つこの論理配列は、 FIND関数に渡されます。このゼロ以外の値の位置は、行列の最初の行 (出力) と、残りの次元内の 4 番目の線形インデックス (出力) にあります。のゼロ以外の値が出力されます。true
(1,2,2)
a = 1
b = 4
1
c
Find は、2 次元配列に適用しようとしているときにのみ機能します。
n 次元配列を実行する Matlab Central で利用できる関数がいくつかあります。