2016-03-29 27 views
0

verilen öğeleri hariç bir 2D Mantıksal dizi içinde tüm öğeleri "Sıfır" dönüştürmek, bir 2D Mantıksal dizi ile çalışıyorum ve endeksleri rasgele olan bazı öğeler hariç, tüm öğeleri sıfır gerekir Başka bir 2D çift dizide verilir. Rastgele, demek ki, satırlar hayır. ve cols no. sırayla değil.Bir koordinatlar başka bir dizi

düşünün:

 A=[1 0 0; 0 1 1; 1 1 0]; %The logical array 

     I=[3 1; 2 3]; % indices of the elements i want them unchanged(stay 1) 

     final_A=[0 0 0; 0 0 1; 1 0 0]; % expected output 

Herhangi bir yardım?

cevap

4

Gerçekten sadece bir matris I öğeler true ayarlanır ve tüm diğerleri false ayarlanır A boyutunu gerekir. I'da belirtilen satırdan/sütundan mutlak indislere dönüştürmek için sub2ind kullanabilirsiniz.

final_A = false(size(A)); 
final_A(sub2ind(size(A), I(:,1), I(:,2))) = true; 

    0  0  0 
    0  0  1 
    1  0  0 

Bu I belirtilen A tüm unsurları ile başlayacak true olduğunu varsayar. Bu durumda değilse, o zaman sadece A içinde true olanların tutulduğundan emin olmak isteyeceksiniz. Bunu bir eleman bilge and (&) operation kullanarak yapabilirsiniz.

final_A = final_A & A; 
+0

Daha Fazla Bilgi Bunun için teşekkürler. güncellenmiş. – Suever

+0

Çok çalıştı, çok teşekkürler! –