Select the column with at least one 1 in it

10 ビュー (過去 30 日間)
Rishi Balasubramanian
Rishi Balasubramanian 2020 年 12 月 20 日
コメント済み: Walter Roberson 2020 年 12 月 20 日
Hey people
Assume I have a m by n matrix of binary data. How would I be able to identify the column that has the least number of ones?
I used the sum function and compared the max and min. Later on in many loops I realised that it also identifies the column with zero 1s too. How do I avoid that?
The column to be selected must have a minimum of one 1s to n number of ones.
b = sum(H);
bmax = max(b);
bmin = min(b);
RC = find(b==min(b));
%This is what I am using which identifies the column with zero ones. Any simple methods?

採用された回答

Walter Roberson
Walter Roberson 2020 年 12 月 20 日
編集済み: Walter Roberson 2020 年 12 月 20 日
find(any(H,1))
If you need at most n ones then:
b = sum(H,1);
find(b >= 1 & b <= n)
  4 件のコメント
Rishi Balasubramanian
Rishi Balasubramanian 2020 年 12 月 20 日
Consider a matrix H = 1x30.
The data in those elements are numbers 0, 1, 2, ......, n
I wanna be able select the column(s) with the values from 1.
If H has a '0', then columns having '1' must be returned.
If H has a '0', and has no 1s, then columns having '2' must be returned.
If H has a '0', and has no 1s and 2s, then columns having '3' must be returned.... and so on.
It should be able to return all the columns with a minimum value in it, where the minimum value cannot be zero. But it is any available minimum value after 0.
How do i achieve this?
Walter Roberson
Walter Roberson 2020 年 12 月 20 日
any(H==min(H(H~=0)),1)

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeLogical についてさらに検索

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by