Ich habe 3 große Arrays: Array1
, Array2
und Array3
. Alle sind gleich groß und ihre Abmessung ist 7000000x1
.Finding Indizes mehrerer Arrays, die eine Bedingung in Matlab
Ich versuche, die Indizes der Arrays zu finden, die einen gemeinsamen Zustand mit find
Befehl in Matlab erfüllen, habe ich ähnliche
I2 = find (Array1 > a1 & Array1 < a2 & ...
Array2 > b1 & Array2 < b2 & ...
Array3 > c1 & Array3 < c2);
a, b und c sind alle skalare Werte enthalten.
I2
ist innerhalb einer for-Schleife (~ 7M Iterationen) und dauert dieser Vorgang sehr viel Zeit! Irgendwelche Vorschläge zur Verbesserung dieser Codezeile?
Das ist mehr als wahrscheinlich so schnell wie es wird. Gibt es einen besonderen Grund, dass Sie "finden" brauchen, anstatt nur ein logisches Array zu finden? – Suever
dachte ich finde, ist die einfache Möglichkeit, es zu tun. Können Sie erklären, was mit dem logischen Array gemeint ist? – Mechanician
Nun, was Sie mit 'I2' später tun? Verwenden Sie es, um Werte aus etwas anderem herauszuholen? Wenn ja, können Sie 'find' weglassen und nur die logische Anordnung durch den Rest der Anweisung zurück verwenden, um die Indizierung zu tun für Sie – Suever