- sig is eine Signal array mit 0,1 und -1
- bei einem 1 oder -1 Signal in sig Spalte soll:
- in "tr" Spalte, eine Zeile verschoben (also eine Zeile nach der Zeile mit dem Wert 1 oder -1 in der Spalte sig), in "dur" definierte Anzahl der 1 oder -1 je nach dem Signal hinzugefügt werden. Das klappt bei ersten erscheinen von dem Signal 1 und -1, jedoch nicht bei den weiteren. Das kann ich nicht nachvollziehen. Ich würde dabei nur sehr ungern eine for Schleife benutzen, da ich diese Operationen an sehr großen Arrays anwenden will und eine for Schleife würde die Performance erheblich verschlechtern.
- als nächstes würde ich gern ein "ret" - Wert berechnen. Und Zwar jeweil in Zeilen mit 1 und -1 in "tr" Spalte. Wobei die erste Zeile im Signalblock soll mit val2-val1 berechnet werden und das Ergebniss soll in gleiche Zeile in der Spalte "ret" gespeichert werden. Die restlichen Zeilen im Signalblock sollen gleich berechnet werden wie bereit implementiert. Also "val2(x,1)-val2(x-1,1)". Das berechnen von "eq" klappt ohne weitere Probleme.
Ich hoffe ich habe euch nicht erschrocken. Hoffentlich versteht ihr mich, sonnt fragt mich bezüglich Unklarheiten.
Danke für jeden Hinweiss.
LG Joe.
Für die Übersichtlichkeit habe ich noch eine Grafik angegängt.
-trE -> signalisiert den Anfang des Signalblocks und wird weiter bei der Berechung von "ret" benutzt (Funktioniert)
-trR -> sind die restlichen Stellen des Signalblocks und werden auch bei der Berechnung von "ret" benutzt. (Funktioniert)
-trA -> stellt das gesamte Signalblock. Dient nur zur Überprüfung.
- was noch immer noch nicht klappt ist eben, dass:
- in der Spallte "trR" klappt das Hinzufügen des Signalls nur bei ersten erscheinen von dem Signal 1 und -1 in der Spalte "sig", jedoch nicht bei den weiteren. Das kann ich nicht nachvollziehen. Ich würde dabei nur sehr ungern eine for Schleife benutzen, da ich diese Operationen an sehr großen Arrays anwenden will und eine for Schleife würde die Performance erheblich verschlechtern.
- zusätzlich habe ich noch die Berechnung von sig (bei dem die Spalte um n-Stellen nach unten verschoben wird) verenfacht. Hier ein Beispiel:
>> a = [ 2 3 4 5 6 7]
a =
2.00 3.00 4.00 5.00 6.00 7.00
>> k = 1
k =
1.00
>> a([ ones(1,k) 1:end-k ])
ans =
2.00 2.00 3.00 4.00 5.00 6.00
>> ones(1,k)
ans =
1.00
>>
Ich kann aber nicht nachvollziehen, wie werden die führenden "ones" zu 2.0? Eigentlich will ich die führenden, ersetzten Zeichen als 0 darstellen. Wenn ich aber folgendes ausführe, bekomme ich ein Fehler:
>> a([ zeros(1,k) 1:end-k ])
??? Subscript indices must either be real positive integers or logicals.
Danke für alle Hinweise.
LG Joe
Einstellungen und Berechtigungen
Du kannst Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen. Du kannst Dateien in diesem Forum posten Du kannst Dateien in diesem Forum herunterladen
MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.