What determines the shape of a logically indexed array?
이전 댓글 표시
Matlab help explains: " Logical Indexing : ... The output is always in the form of a column vector."
In practice, typing
a = ones(3,3);
b = a([true, true]);
gives a row vector b. Can someone tell me why does it behave this way? And is there any other instance (apart from indexing by one row logical vector) that gives a non-column result? Thanks, O.
채택된 답변
추가 답변 (1개)
Azzi Abdelmalek
2014년 4월 3일
Maybe you need
a = ones(3,3);
b = a([true, true],:)
댓글 수: 7
Ondrej Budac
2014년 4월 3일
편집: Ondrej Budac
2014년 4월 3일
Azzi Abdelmalek
2014년 4월 3일
a = ones(3,3);
a is a 3x3 array
your index is idx=[true, true] is a 1x2 array, the result a(idx) is obviously a 1x2 array.
Ondrej Budac
2014년 4월 3일
편집: Ondrej Budac
2014년 4월 3일
Azzi Abdelmalek
2014년 4월 3일
편집: Azzi Abdelmalek
2014년 4월 3일
Ok,
a=[1 2 3 ;4 5 6;7 8 9]
a([4 5;3 1]) % is a 2x2 array
% but if you use logical indexing
a(logical([1 0;1 1]))
% this is equivalent to a([1 2 4])
Ondrej Budac
2014년 4월 3일
편집: Ondrej Budac
2014년 4월 3일
Azzi Abdelmalek
2014년 4월 3일
Just one question, what are you expecting with a(logical([1 0;1 1])) ? The result contains 3 elements
Ondrej Budac
2014년 4월 3일
카테고리
도움말 센터 및 File Exchange에서 Operators and Elementary Operations에 대해 자세히 알아보기
제품
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!