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 で Matrix Indexing についてさらに検索
製品
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!