Working with a set of matrices
7 ビュー (過去 30 日間)
古いコメントを表示
I want to generate a finite matrix group by starting with the S ={identity} and multiplying by some generators until S no longer grows in size.
Is there an efficient way to deal with a "set" like this, without manualling checking for duplicates? For example, it seems awkward if you use cell arrays to store the elements of S.
2 件のコメント
Matt J
2021 年 4 月 3 日
For example, it seems awkward if you use cell arrays to store the elements of S.
Why?
採用された回答
Matt J
2021 年 4 月 3 日
編集済み: Matt J
2021 年 4 月 3 日
I'm not sure I will fully understand the task without seeing an example. However, if S is organized as an MxNxP array,
[M,N]=deal(3,3);
S=cat(3,eye(M,N), randi(5,M,N), eye(M,N) )
then you can get rid of duplicate slices with
s=reshape(S,[],size(S,3));
S=reshape( unique(s.','rows').', M,N,[])
If S contains non-integer matrices, you will probably need to use uniquetol() instead of unique().
その他の回答 (0 件)
参考
カテゴリ
Help Center および File Exchange で Matrix Indexing についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!