2017-07-26 4 views
2

Ich habe einen Vektorwerte enthalten:Konvertieren einer Matrix von Indizes von einem Vektor von Werten

c = [52, 26, 17, 39, 43]; 

und eine Matrix, die die Indizes des Vektors enthält:

B = [1 5 3 2; 
    4 2 3 1; 
    2 4 3 1; 
    4 4 1 2]; 

Wie konvertiere ich B in eine Matrix B2, die die Werte in Vektor c mit den Indizes in B enthält?

B2 = [52 43 17 26; 
     39 26 17 52; 
     26 39 17 52; 
     39 39 52 26]; 

Eine for-Schleife verschachtelt erreicht, was ich will:

for i = 1:4 
for j = 1:4 
    B2(i,j) = c(B(i,j)); 
end 
end 

Doch dieses Problem scheint, wie es für die Vektorisierung reif sein sollte. Gibt es eine Möglichkeit, dies ohne for-Schleifen zu tun?

Antwort

4

Sie können einfach Index c mit B:

B2 = c(B); 
+0

Eine bessere Lösung. +1. Keine Notwendigkeit, umzuformen. –

Verwandte Themen