I have a matrix 5x5 and i managed from this matrix to create a matrix 5x10 by creating a subgroup of 2 in each column.
So Matrix =
0 0 0 1 0 0 0 0 0 0
1 0 0 0 0 0 0 0 0 0
0 0 1 0 0 0 0 0 0 0
0 0 0 0 0 1 0 0 0 0
0 0 0 0 0 0 0 0 0 1
I want to tell that row 1 belongs to group 2, row 2 belongs to group 1, row 3 belongs to group 2, row 4 belongs to group 3 and row 5 belongs to group 5!
Thank you so much

 採用された回答

Azzi Abdelmalek
Azzi Abdelmalek 2016 年 4 月 7 日
編集済み: Azzi Abdelmalek 2016 年 4 月 7 日

0 投票

group=[2 1 2 3 5]
the variable group indicate what you want

5 件のコメント

N.
N. 2016 年 4 月 7 日
I don't have a variable called group! I want to create this vector
Walter Roberson
Walter Roberson 2016 年 4 月 7 日
group=[2 1 2 3 5] is an assignment statement, in which you define that the first entry is group 2, the second is group 1, and so on. You would create that variable using whatever information allowed you to tell us that those were the group numbers when you described the problem.
N.
N. 2016 年 4 月 7 日
編集済み: N. 2016 年 4 月 7 日
The group thing is the information that i want to get, its not a thing that i would define.
Azzi Abdelmalek
Azzi Abdelmalek 2016 年 4 月 7 日
Ok, then based on what you can tell one row or another belong to any group?
Azzi Abdelmalek
Azzi Abdelmalek 2016 年 4 月 7 日
Maybe this is what you want
A=[0 0 0 1 0 0 0 0 0 0
1 0 0 0 0 0 0 0 0 0
0 0 1 0 0 0 0 0 0 0
0 0 0 0 0 1 0 0 0 0
0 0 0 0 0 0 0 0 0 1]
n=size(A,1);
a=any(reshape(A,n,2,[]),2)
b=a(:,:);
for k=1:n
group(k)=find(b(k,:),1)
end

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

その他の回答 (1 件)

Walter Roberson
Walter Roberson 2016 年 4 月 7 日

0 投票

group = sum( Matrix(1:2:end) | Matrix(2:2:end) .* repmat( 1:size(Matrix,2)/2, size(Matrix,1), 1), 2);
Note: this may give unexpected answers if you have multiple 1's in the same row.

カテゴリ

ヘルプ センター および File ExchangeMathematics についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by