- 締切済み
【MATLAB】任意の多次元配列からの配列の抽出
ベクトルvから複数の要素を抽出し,新しいベクトルuを生成する方法には,以下のようにインデックスを指定する方法があります. idx = [3 10 15 28]; u = v(idx); この方法を拡張し,以下のようにN次元配列Aのi次元目のインデックスを指定することで複数の配列を抽出し,新しい配列Bを得ようと考えています. idx = [3 10 15 28]; B = A(:,:, ・・・ ,:,idx,:, ・・・ ,:,:); Aの次元Nはi以上の任意の値で,iは予め指定された値である場合, 配列Bを得る方法はございますでしょうか. 現在,私は以下のような方法で計算しておりますが,コマンド「eval」を用いて力技でしのいでいる感じで,最適な方法が他にあるのでは,と考えております. N = length(size(A)); idx = [3 10 15 28]; i = 3; buf = 'A('; for s = 1:N if s == i buf = [buf 'idx']; else buf = [buf ':']; end if s < N buf = [buf ',']; end end buf = [buf ')']; B = eval(buf);
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- Kules
- ベストアンサー率47% (292/619)
回答No.1