how to create group from matrix

hi, i want to do table group :
1 column :3,5,9,12
2 column: 4,6,7,8,10,11
3 colum (no..because this element are identical at colum 1 )
..
the column with all zero element to be not insert! (and the column egual )
finally i get this matrix (colum 5,6,7,8 are clone...i not insert it in the group)
1 column :3,5,9,12,0,0
2 column: 4,6,7,8,10,11
i try to use world reserved "unique" but i can't do it

 采纳的回答

M = [0 0 3 4 3 4 4 4; 0 0 5 6 5 6 6 6; 0 0 9 7 9 7 7 7; 0 0 12 8 12 8 8 8; 0 0 0 10 0 10 10 10; 0 0 0 11 0 11 11 11; 0 0 0 0 0 0 0 0; 0 0 0 0 0 0 0 0; 0 0 0 0 0 0 0 0]
M = 9×8
0 0 3 4 3 4 4 4 0 0 5 6 5 6 6 6 0 0 9 7 9 7 7 7 0 0 12 8 12 8 8 8 0 0 0 10 0 10 10 10 0 0 0 11 0 11 11 11 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
% unique() by column:
M = unique(M.','rows','stable').'
M = 9×3
0 3 4 0 5 6 0 9 7 0 12 8 0 0 10 0 0 11 0 0 0 0 0 0 0 0 0
% remove all-0 rows:
M(all(M == 0,2),:) = [];
% remove all-0 columns:
M(:,all(M == 0,1)) = [];
disp(M);
3 4 5 6 9 7 12 8 0 10 0 11

4 个评论

pipin
pipin 2023-8-7
编辑:pipin 2023-8-7
M = unique(M.','rows','stable').'
what is . after M? (M.)
i try to remove it and the result is the same
.' is transpose
' is complex conjugate transpose
By removing the . you went from using tranpose to complex conjugate transpose, which means that the code will not work as intended for complex-valued matrices. But since your matrix is real-valued its complex conjugate is itself so the result is the same whether you use .' or ' in this case.
thank you for explenation
You're welcome!

请先登录,再进行评论。

更多回答(0 个)

类别

帮助中心File Exchange 中查找有关 Creating and Concatenating Matrices 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by