"Singletons'u" ikili matristen çıkarmaya çalışıyorum. Burada, singletonlar, satırda ve göründükleri sütundaki tek "1" değeri olan öğelere başvurur. 1. [3,4], çünkü (mümkünse sütun 4 hepsi ve)Satırları/sütunları bir ikili matristen yalnızca bir öğe ile kaldırma
> matrix(c(0,1,0,1,0,0,1,0,0,1,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,1,0,0,0,0,1,0,0,0,0,0,1,1), nrow=6)
[,1] [,2] [,3] [,4] [,5] [,6] [,7]
[1,] 0 1 0 0 0 0 0
[2,] 1 0 1 0 0 0 0
[3,] 0 0 0 1 0 0 0
[4,] 1 1 0 0 0 0 0
[5,] 0 0 0 0 1 1 1
[6,] 0 0 0 0 1 0 1
... ı satır 3 kaldırmak için eder: Örneğin, aşağıdaki matris verilen Bu satır/sütun kombinasyonunda sadece 1. [1,2] iyi, çünkü sütunda diğer 1'ler var [, 2]; benzer şekilde [2,3] iyidir, çünkü diğer 1'ler satırda [2]. Herhangi bir yardım takdir edilecektir - teşekkürler!
çok serin, görselleştirme için teşekkür ederiz. Tamdan seyrekliğe dönüşüm önemsizdir, tüm matris üzerinde döngü yaparak ve sıfır olmayan her bir değerin koordinatlarını çekerek clümen olarak yaptım (bunu yapacak paketlerin de olduğuna inanıyorum). Bu, büyük matrisler için (yine, daha fazla 1MM^n için [n boyutlar için işe yaradığı için]), seyrek, hem bellek hem de hesaplamalar için daha uygun bir çözümdür ve matrisin zaten bunun içinde olacağını varsayabilirim. biçim. – Chris
Seyrekliğe dönüştürme o kadar da zor değil (cevabım için yorumuma bakın). Ve aslında seyrek metot çok büyük matrisler için daha verimlidir, sadece standart matris formatını koruyan bir yöntem sağladım. – cr1msonB1ade