MATLAB:リストを使用して多次元配列の要素にアクセスする
-
29-10-2019 - |
質問
d次元配列 A と、長さがdに等しいベクトル inds があります。 inds で A の値にアクセスしたいと思います。
理想的には、 A(* inds)(Pythonから解凍構文を借用)のようなことをします。MATLABでこれを行う方法がわかりません。
A(inds)を実行すると、実際には A からd個の個別の値が取得されますが、これは私が望むものではありません。私が欲しいのは、 inds の要素iを関数呼び出し A ()のi番目のパラメーターにすることです。
解決
1つの解決策は、カンマ区切りのリストを作成することです添え字付きインデックスinds
のベクトルから。これを行うには、 NUM2CELL を使用してセル配列に変換します。次に、{:}
のインデックスを作成するときに、A
構文を使用します。
ジェネラコディセタグプレ
他のヒント
このツールが役立つと思います:
R= rand(5,10,15,20)のようなND行列があり、特定のパターンの要素にアクセスする場合は、spindexを使用して、入力アクセスと同じ形状で出力にアクセスできます。。したがって、size(i1)= [5,5,5]、size(i2)= [5,5,5]などの場合、size(spindex(R、i1、i2、i3、i4))も等しくなります。[5,5,5]。 ジェネラコディセタグプレ
以下のコードをspindex.mとしてMATLABパス内の場所に追加する必要があります。 ジェネラコディセタグプレ
所属していません StackOverflow