MATLAB: Vergleich aller Elemente von zwei arrays
Ich habe zwei Matrizen in MATLAB können sagen arr1
und arr2
von der Größe 1000*1000 jeder. Ich möchte einen Vergleich Ihrer Elemente, und speichern Sie den Vergleich in der Ergebnis-matrix resarr
die ist auch 1000*1000, so dass für jedes element:
- wenn das element in
arr1
ist größer als die, die inarr2
, legen Sie den Wert 1 in das Ergebnis - wenn das element in
arr2
größer ist, speichern Sie den Wert 2
aber ich will nicht zu tun, diese mit for-Schleifen, denn das ist langsamer. Wie kann ich dies tun?
EDIT:
Auch wenn ich wollte, zum speichern von verschiedenen RGB-Werte in einem 1000*1000*3 Ergebnis-matrix, je nach Vergleich von arr1
und arr2
könnte, dass man ohne langsam Schleifen?
Beispielsweise speichern (255,0,0) wenn arr1
ist größer und (0,255,0), wenn arr2
größer
Dies ist eine SEHR ähnliche Frage zu stackoverflow.com/questions/2202641/...
Vereinbart. Sehr ähnlich, aber technisch anders.
Vereinbart. Sehr ähnlich, aber technisch anders.
InformationsquelleAutor n0ob | 2010-02-05
Du musst angemeldet sein, um einen Kommentar abzugeben.
arr1>arr2
vergleicht arr1 und arr2, element nach element, Rückkehr 1000x1000 matrix mit 1 an der Stelle arr1 größer ist, und 0 sonst. die2 -
Teil in einer matrix, wo es 1 ist, wenn arr1 war größer als arr2, und 2 sonst.Hinweis: wenn arr1 und arr2 sind euqal an einem gewissen Punkt, Sie werden auch get 2 (da arr1>arr2 0 zurück, dann 2-0=2).
Als Anmerkung, auch wenn dieser code richtig ist, performance-wise beachten Sie, dass durch die Speicherung 1/2 anstelle von true/false erstellen Sie eine matrix x8 mal die Größe des logischen Typ..
InformationsquelleAutor Ofri Raviv
Hinsichtlich der Bearbeitung, sobald Sie Ihre
resarr
matrix berechnet als Ofri vorgeschlagen, die Sie ändern können eine RGB-matriximg
in der folgenden Weise:InformationsquelleAutor gnovice