|
|
If mit mehreren && in Switch-Case umprogrammieren |
|
Frank |

Forum-Anfänger
|
 |
Beiträge: 11
|
 |
|
 |
Anmeldedatum: 14.06.12
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 02.02.2015, 15:51
Titel: If mit mehreren && in Switch-Case umprogrammieren
|
 |
Hallo liebes Forum,
ich habe folgendes Problem. Ich habe drei Rechtecksignale mit Amplitude 1 und leicht Phasenversetzt zueinander. Diese lese bzw. ich zähle die steigenden Flanken momentan mit einer aufwendigen If-Abfrage ein. Nun zu meiner Frage. Ich würde gerne die If-Abfrage durch eine Switch-Case Anweisung ersetzen, nur leider läst die Switch-Syntax keine Vektoren zu. Kann ich dieses Problem irgendwie umgehen.
hier der jetzige Code:
das letzte signal(x)_l ist das original signal um einen Zeitschritt vorher, um die Flanken rauszufiltern.
Gruß
Frank
[EDITED, Jan, Bitte Code-Umgebung verwenden - Danke!]
|
|
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.499
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 02.02.2015, 17:48
Titel:
|
 |
Hallo,
was gehen sollte:
Die Werte in einen Vektor signals zusammenfassen und dann:
Grüße,
Harald
|
|
|
Frank |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 11
|
 |
|
 |
Anmeldedatum: 14.06.12
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 02.02.2015, 19:19
Titel:
|
 |
Hallo,
danke für die schnelle Antwort,
wenn ich versuche die Rechtecksignale in einen Vektor zusammenzufassen bekomme ich folgende Fehlermeldung.
SWITCH is only defined for scalar or string inputs.
Gruß
Frank
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.499
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 02.02.2015, 20:22
Titel:
|
 |
Hallo,
falls du das eingangs mit "nur leider läst die Switch-Syntax keine Vektoren zu" gemeint hast, bitte immer ein Beispiel und die zugehörige Fehlermeldung abgeben.
Alternativ könnte man switch schachteln:
switch signal1
Eine weitere Möglichkeit wäre, die vier 0/1 Werte in eine Zahl von 0 bis 15 umzuwandeln und darauf switch anzuwenden:
Grüße,
Harald
|
|
|
Frank |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 11
|
 |
|
 |
Anmeldedatum: 14.06.12
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 04.02.2015, 11:40
Titel:
|
 |
Hallo,
danke für die Vorschläge, leider konnte ich bin2dec und num2str nicht nutzen, das diese anscheinend in einer embedded matlab function in Simulink nicht funktionieren. Ich habe es aber jetzt folgendermaßen gelöst.
Die drei Rechtecksignale in einen Vektor X zusammenfassen und händisch eine Zahl mit
umwandeln. Dann kann man die
benutzen.
Nur falls jemand ein ähnliches Problem hat.
Grüße
Frank
|
|
|
|
|
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
|
|
Impressum
| Nutzungsbedingungen
| Datenschutz
| FAQ
| RSS
Hosted by:
Copyright © 2007 - 2025
goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks
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.
|
|