Renumber matrix with some restrictions
4 次查看(过去 30 天)
显示 更早的评论
Hello everyone,
i have a problem with a matrix called conn which represents the names of some cordinates.
The conn matrix is: conn=[1 5; 5 6; 6 7; 7 2; 2 3; 2 8; 8 9 ; 9 10; 10 4]
i want to renumber it from the start so the new matrix Con would be:
Con = [1 2; 2 3; 3 4; 4 5; 5 6; 5 7; 7 8 ; 8 9; 9 10].
So i want to renumber it from start row by row but all the same numbers from conn matrix apprear in the Con with the same number (see 2 3 and 2 8 from conn). Is it possible?
Thanks in advance.
0 个评论
采纳的回答
Walter Roberson
2022-1-5
编辑:Walter Roberson
2022-1-5
conn=[1 5; 5 6; 6 7; 7 2; 2 3; 2 8; 8 9 ; 9 10; 10 4]
[~, ~, ic] = unique(conn.', 'stable')
Con = reshape(ic, 2, []).'
更多回答(1 个)
Steven Lord
2022-1-5
I'm not completely sure how you got from conn to Con, in particular I'm not sure how you generated the third row in Con. [3 4] doesn't appear as a row in conn. What I think from your description you want uses sort and sortrows.
conn=[1 5; 5 6; 6 7; 7 2; 2 3; 2 8; 8 9 ; 9 10; 10 4]
smallerNumbersFirstInRow = sort(conn, 2)
Con = sortrows(smallerNumbersFirstInRow)
If that's not what you want can you describe in more detail exactly how you generated your Con matrix from the conn matrix?
0 个评论
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Matrices and Arrays 的更多信息
产品
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!