How may I calculate the number of rows in each group?

2 ビュー (過去 30 日間)
Julia
Julia 2023 年 2 月 13 日
コメント済み: Julia 2023 年 2 月 13 日
Hi! If I have a matrix:
M= [1 50 60 70 50 40
2 NaN 10 20 10 10
3 NaN 20 NaN NaN NaN
1 NaN 60 30 40 50
2 10 20 10 20 NaN
1 30 20 40 NaN 50
2 NaN 50 50 NaN NaN]
The first column indicates to which group the rows belong to. "1, 2, 3" (row 1, 2, 3) are Group 1, "1, 2" (row 4, 5 ) are Group 2, the next "1, 2" ( row 6, 7) are Group 3.
I am trying to find the number of rows in each group. The desired result would be:
N= [3
2
2]
Could someone please teach me how to do this? It seems that I can't get my head around it. I think the first step can be splitting the groups:
g=nan(size(M,1),1);
ix=(M(:,1)==1);
g(ix)=[1:sum(ix)];
g=fillmissing(g,'previous');
but I am not sure where to go from here.
  2 件のコメント
KSSV
KSSV 2023 年 2 月 13 日
Whats the logic for this?
"1, 2, 3" (row 1, 2, 3) are Group 1, "1, 2" (row 4, 5 ) are Group 2, the next "1, 2" ( row 6, 7) are Group 3
Dyuman Joshi
Dyuman Joshi 2023 年 2 月 13 日
編集済み: Dyuman Joshi 2023 年 2 月 13 日
So when the value in first column is 1, a new group starts? If so, @Voss's answer should be good to go.
If not, then specify a general criteria for splitting into groups.

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

採用された回答

Voss
Voss 2023 年 2 月 13 日
diff(find([M(:,1); 1] == 1))
  1 件のコメント
Julia
Julia 2023 年 2 月 13 日
Thank you! Your answer helps a lot.

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

その他の回答 (1 件)

Bhavana Ravirala
Bhavana Ravirala 2023 年 2 月 13 日
Hi Julia,
According to my understanding, the first element of the row is deciding the group. You can use the below code to know the number of rows in each group.
N=M(:,1); % getting the first column of elements which we are using to divide the groups
k=length(N); % gives the number of rows in the matrix
j=[];
o=0;
for i=1:k
if(n(i)==1)
if(o~=0)
j=[j,o];
end
o=1;
else
o=o+1;
if i==k
j=[j,o];
end
end
end
Hope this helps!!
  1 件のコメント
Julia
Julia 2023 年 2 月 13 日
Thank you! I'll look into the use of for loop.

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

カテゴリ

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

タグ

製品


リリース

R2022b

Community Treasure Hunt

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

Start Hunting!

Translated by