Indexing multidimensional matrices using logical arrays
Show older comments
I want to efficiently find number in a multidimensional array that fall into
some category and do something to them,like in the code below:
nc=4;
mc=1000;
r1=normrnd(0,1,[nc,mc,n-1]);
for j=2:n
indexNeg(:,:)=r1(:,:,j)<0.5;
r1(:,:,j)=-r1(indexNeg,j);
end
here, I create a multidimensional array of random numbers and change sign of any number smaller than 0.5
I am getting this error Subscript indices must either be real positive integers or logicals.
How to properly use the logical index?
Accepted Answer
More Answers (2)
Andrei Bobrov
on 17 Dec 2013
Edited: Andrei Bobrov
on 17 Dec 2013
l = r1 < .5;
r1(l) = -r1(l);
On comment by Marco
r1 = abs(r1);
2 Comments
Marco Pereira
on 17 Dec 2013
Edited: Marco Pereira
on 17 Dec 2013
Andrei Bobrov
on 17 Dec 2013
What you want?
Marco Pereira
on 17 Dec 2013
0 votes
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!