Find the rows with specific value for each column
古いコメントを表示
Hello, I have a 37*10000 matrix, called matrix A.
For each column, I want to get the rows which has a certain value, let's say, 1.
I know how to do with a certain column, by using find, like: find(any(A(:,1)==1,2)). But here, I need to find such rows for all columns, and the number of column is huge. So I dont know how to deal with it?
And is there any way to deal with it without using loop, since the number of column is huge, I am afraid that using loop might take a lot of time to run the command.
Thanks a lot!
回答 (2 件)
madhan ravi
2018 年 10 月 24 日
編集済み: madhan ravi
2018 年 10 月 24 日
a=randi([1 10],4,10)
[row,col]=find(ismember(a,10));
col %represents in which column the value is
7 件のコメント
heidi pham
2018 年 10 月 24 日
madhan ravi
2018 年 10 月 24 日
編集済み: madhan ravi
2018 年 10 月 24 日
No you will get which columns has that value and instead of 1 if you use the iterator for instance i which goes from 1 to 37( meaning row numbers in this case) you will be able to find columns having the value
heidi pham
2018 年 10 月 24 日
madhan ravi
2018 年 10 月 24 日
Or use ismember()
madhan ravi
2018 年 10 月 24 日
See the edited answer now , you can get rid of loops and ismember is more efficient
heidi pham
2018 年 10 月 24 日
madhan ravi
2018 年 10 月 24 日
Sure thing!
Akira Agata
2018 年 10 月 24 日
Another possible solution.
A = randi([1 10],4,10);
idx = any(A == 1); % Represents column index in which the value 1 is
col = find(idx); % Represents column number in which the value 1 is
カテゴリ
ヘルプ センター および File Exchange で Matrix Indexing についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!