Das finden der index einen bestimmten Wert in einer Zelle in MATLAB
Habe ich eine zwei-dimensionale Zelle, wo jedes element ist entweder a) leer oder b) ein Vektor von unterschiedlicher Länge, die mit Werten von 0 bis 2. Ich möchte die Indizes der Zelle Elementen, bei denen ein bestimmter Wert Auftritt, oder noch besser, die "komplette" index der jedes vorkommen eines bestimmten Werts ein.
Zur Zeit arbeite ich an einem Agenten-basierten Modell von Krankheit ausbreitet, und dies wird getan, um zu finden, die die Positionen der infizierten Agenten.
Vielen Dank im Voraus.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Hier ist, wie ich es tun würde:
Nennen diese methode1.
Einer Schleife ist auch möglich:
Nennen diese methode2.
Vergleich der beiden Methoden für die Geschwindigkeit in etwa so:
gibt
auf Matlab R2010b/32bit w/Intel Core [email protected] w/Ubuntu 11.10/2.6.38-13. Dies ist vor allem aufgrund JIT-loops (und wie furchtbar
cellfun
und anonyme Funktionen scheinen umgesetzt werden, mumblemumble..)Sowieso, kurz gesagt, verwenden die Schleife: es ist besser lesbar, und um eine Größenordnung schneller als die vektorisierte Lösung.
cellfun
und Entsprechungen. Es kann sehr irritierend sein, jetzt zu versuchen, ein paar verschiedene Methoden, um zu sehen, welcher Weg der Schnellste.