Ich bin neu in StateFlow und habe mir StateFlow-Tutorials angeschaut, aber noch keine, die Vektoren verarbeiten.Wie verarbeitet man die Vektoreingabe in StateFlow?
Mein Simulink-Modell erzeugt Vektoren von Audiodaten, die ich mit einer Zustandsmaschine verarbeiten möchte. Wenn zum Beispiel die Audiodaten einen bestimmten Wert überschreiten, muss state1 eingegeben werden, und wenn ein anderer Wert unterschritten wird, muss state2 eingegeben werden.
Wenn ich den Unbuffer-Block verwenden, um die Daten an den StateFlow-Block zu senden, wird das System sehr langsam ausgeführt.
Also, wie kann ich StateFlow durch eine Vektoreingabe laufen lassen, jedes Element im Vektor verarbeiten?
Edit: Ich habe ein Bild von meinem Diagramm beigefügt. Hier versuche ich auf das i-te Element der Eingabe zuzugreifen, aber ich weiß nicht, wie ich die Variable i deklariere und wie ich sie inkrementiere, um den Vektor zu verarbeiten.
OK, danke für die Hinweise. Stellt sich heraus, ich sende die Daten als Vektor, Größe 64 Zeilen pro 1 Spalte. Aber Sie geben an, dass ich eine Zählervariable einrichten muss, aber das ist es, was ich in StateFlow nicht kann. Wo wird diese Zählervariable deklariert und wie wird sie erhöht? Ich habe ein Bild der Tabelle in der op angehängt. –
Angenommen, Sie verwenden die MATLAB Action Language (die Standardeinstellung) für das Diagramm, dann müssen Sie nur jede Instanz von a (i) in Ihrem Diagramm durch 'any (a)' ersetzen. Das heißt, für das, was Sie gezeigt haben, müssen Sie sich nicht darum kümmern, einen Zähler zu definieren oder über jedes Element zu schreiben. –