Accessing certain Dimension of Multidimensional Array
11 ビュー (過去 30 日間)
古いコメントを表示
Hi All,
Recently I've been working on a problem where I have a multidimensional array where I don't know how how many dimensions I have, but I want to get all the items that are in the ith slice (row, column, matrix, hyperplane, idk what to call it) of the jth dimension. Is there any way to do this easily in MATLAB?
As an example, for a 3x3x3 matrix, if I want the 2nd slice in the 3rd dimension, I wold go A(:,:,2), but here I don't have the luxury of typing however may semicolons I want.
0 件のコメント
採用された回答
Matt Fig
2012 年 10 月 4 日
編集済み: Matt Fig
2012 年 10 月 4 日
Here is how I would do it:
% A is given, up to 8 dims here.
A = rand(max(2,randi(4,1,max(3,randi(8)))));
idx1 = 2; % Say we want the idx1th slice of
idx2 = randi(ndims(A)); % The idx2th dimension.
C = repmat({':'},1,ndims(A));
C(idx2) = {idx1}; %This is our index into A.
SLC = A(C{:}) % Here is our slice.
2 件のコメント
Matt Fig
2012 年 10 月 4 日
Thanks, Azzi! The first time I saw a cell array used to index a numeric array this way was Walter showing someone how to do it 2-3 years ago. That Walter knows all the tricks!
参考
カテゴリ
Help Center および File Exchange で Matrix Indexing についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!