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!