Ich habe mich gefragt, ob es eine vektorisierte Möglichkeit gibt, folgendes zurückzugeben:
Ich habe einen Vektor =
%Vor%Ich möchte einen Vektor der gleichen Länge zurück erhalten, so dass, wenn er über 5 gekreuzt wird, er auf 1 (WAHR) setzen wird, bis er unter 0 fällt (FALSCH). Ich mache gerade eine for-Schleife, die ewig dauern wird, sollte die obige Reihe eine große Anzahl von Beobachtungen haben.
Antwort sollte zurückgeben:
%Vor%Irgendwelche Ideen?
Das ist ziemlich hässlich, aber es scheint für ziemlich komplizierte Szenarien zu funktionieren:
%Vor%Um zu zeigen, dass es funktioniert:
%Vor%
Und mit einem komplexeren Beispiel von x
:
Sie können die Änderungspunkte anhand logischer Werte identifizieren und nach den Änderungen dieses Status suchen:
%Vor%Dann können wir eine Funktion zum Plotten machen:
%Vor%Wenn Sie dies jetzt tun, verwenden Sie die komplexeren Daten, die vorgeschlagen wurden:
%Vor%Sie bekommen das, wo die schwarzen Punkte die Daten sind und das Rot der Zustand ist (d. h. "geschaltet" oder nicht)
Und wenn alles, was Sie wollen, die Ergebnisse sind, verwenden Sie:
%Vor%(Entschuldigung, ich konnte gestern nicht testen)
Hier ist eine Lösung, die im Wesentlichen reine logische Vergleiche ist und 20% schneller als zoo
Hinweis: Wenn nicht ganzzahlige Werte erwartet werden (oder im Allgemeinen das Fehlen der exakten Randnummern, zB 0
& amp; 5
), verwenden Sie stattdessen die folgenden Definitionen
Das ist wirklich ein langer Kommentar ...
Es fällt mir auf, dass dies ein Schmidt Trigger (Opamp) ist. Das führt mich zu der Frage, ob es eine Möglichkeit gibt, eine while
-Schleife mit einer rücksetzbaren Bedingung auszuführen.
Ich habe wahrscheinlich ein paar negative Zeichen dort, aber Sie bekommen die Idee.
Sie können rle()
verwenden und das Schreiben für / while-Schleifen vermeiden:
Beachten Sie, dass dies zu einem Fehler führt, wenn der erste Wert zwischen 0 und 5 liegt, aber das Hinzufügen eines Checks ist einfach. Sie müssen auch entscheiden, welches Verhalten Sie in diesem Fall wünschen.
Tags und Links r