How to Obtain a Portion of an n-dimensioned Matrix
Show older comments
I have a 6 dimensional matrix with dimensions 16x20x22x6x3x13. I identified specific elements of that matrix with the following:
y = find(spec_neg(:,:,:,:,:,1) ~= 0);
Since y is now the indices of the spec_neg and I would like these in matrix subscript form, I determined the subscripts by doing the following:
[i,j,k,l,m,n] = ind2sub([16,20,22,6,3,13],y);
and then concatenated these subscripts into matrix form:
y_ind = cat(2,i,j);
y_ind = cat(2,y_ind,k);
y_ind = cat(2,y_ind,l);
y_ind = cat(2,y_ind,m);
y_ind = cat(2,y_ind,n);
I want to obtain the values of spec_neg that correspond to the subscript values of y_ind but when I do the following:
spec_neg(y_ind)
I get all zeros so that is obviously not the values in y.
What am I doing wrong?
1 Comment
Matt J
on 20 Nov 2014
Since y is now the indices of the spec_neg and I would like these in matrix subscript form
Be careful. The vector y does not contain indices of spec_neg. It contains indices of the 5-dimensional array spec_neg(:,:,:,:,:,1). The two would not coincide if you were indexing a different section like spec_neg(:,:,:,:,:,10).
So, which is it that you want?
Accepted Answer
More Answers (0)
Categories
Find more on Matrices and Arrays in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!