|
|
Stings in Simulink vergleichen |
|
testuser |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 08.01.2013, 17:41
Titel: Stings in Simulink vergleichen
|
|
Hallo,
das Thema ist wohl nicht ganz neu aber ich finde keine zufriedenstellende Lösung.
Ich möchte einfach 2 strings in Simulink vergleichen. Im Idealfall mit 2 constant Blöcken und einem relational Operator.
Für Tips bin ich wie immer dankbar.
Grüße
|
|
|
|
|
knilumis_baltaM |
Forum-Century
|
|
Beiträge: 241
|
|
|
|
Anmeldedatum: 20.04.12
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 09.01.2013, 07:34
Titel:
|
|
Also der (standard) Ausgangsdatentyp ist in Simulink immer eine Zahl (double, int , uint usw.). Weiß nicht ob man selbst einen definieren kann, ist aber bestimmt den Aufwand nicht Wert.
Als alternative könntest du ein Array mit Zahlen nehmen, wo die Zahlenkombination der Dezimalzahl eines ASCII Zeichens entspricht.
str würde dann für "Hallo" stehen.
Nebenbei, bei welcher Aufgabe in SIMULINK müsste man Strings vergleichen?
|
|
|
Andreas Goser |
Forum-Meister
|
|
Beiträge: 3.654
|
|
|
|
Anmeldedatum: 04.12.08
|
|
|
|
Wohnort: Ismaning
|
|
|
|
Version: 1.0
|
|
|
|
|
|
Verfasst am: 09.01.2013, 09:59
Titel:
|
|
Ja, die Aufgabe dazu interessiert mich auch. Nicht nur aus Neugierde, sondern auch für die Hilfestellung bei der Umsetzung. Im Prinzip sehe ich drei Optionen:
1. Vergleich für jedes Zeichen einer Gesamtnachricht - ein Zeichen per Zeitschritt in *einem* Signal
2. Paralleler Vergleich für jedes Zeichen einer Nachricht in einem oder mehreren Zeitschritten in *mehreren* Signalen oder einem Frame.
3. Vergleich ganzer Wörter und Nachrichriten in einem Zeitschritt
Andreas
|
|
|
testuser |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 09.01.2013, 13:27
Titel:
|
|
Hallo,
es geht darum einen Schalter zu schalten.
Der Schalter soll über eine Variable geschaltet werden. Diese Variable nimmt aber nicht die Größen 0 1 und 2 an sondern 'nein' 'test1' und 'test2' (Bsp.). Es gibt natürlich die Möglichkeit die Variable vorher zu übersetzen, der Aufwand dafür steht aber in keinem Verhältnis.
Grüße
|
|
|
Andreas Goser |
Forum-Meister
|
|
Beiträge: 3.654
|
|
|
|
Anmeldedatum: 04.12.08
|
|
|
|
Wohnort: Ismaning
|
|
|
|
Version: 1.0
|
|
|
|
|
|
Verfasst am: 09.01.2013, 16:31
Titel:
|
|
Und diese "Variable" ist ein Eingangsignal? Liegt also in MATLAB für jeden Zeitschrittvor?
Andreas
|
|
|
testuser |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 09.01.2013, 18:14
Titel:
|
|
Ja, die liegt ganz normal om Workspace . . . ich hab schon ein bisschen versucht den string mit uint8('string') umzuwandeln. Das klappt auch, allerdings ist es halt ein array oder vector und da scheint der relational operator nur auf die erste Stelle zu schauen . . .
d.h. test1 und test2 werden als identisch geprüft
|
|
|
testuser |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 09.01.2013, 19:33
Titel:
|
|
ich hab's jetzt so gelöst . . . ist nicht schön, funktioniert aber . . .
Grüße
Falls doch noch jemand ne bessere Idee hat kann er die gern noch posten.
Beschreibung: |
|
Download |
Dateiname: |
exmp.jpg |
Dateigröße: |
9.75 KB |
Heruntergeladen: |
651 mal |
|
|
|
SimRookie |
Forum-Anfänger
|
|
Beiträge: 27
|
|
|
|
Anmeldedatum: 07.01.10
|
|
|
|
Wohnort: ---
|
|
|
|
Version: R2007b
|
|
|
|
|
|
Verfasst am: 10.01.2013, 09:16
Titel:
|
|
Hallo Testuser,
also, nach der Umwandlung hast du ein Array (oder Vector), dann vergleiche diese nicht mit einander, sondern subtrahiere einen von dem anderen. Wenn das Ergebnis 0 ist, dann sind die beiden gleich ansonsten nicht.
Würde ich so machen.
Gruß
SimRookie
|
|
|
SimRookie |
Forum-Anfänger
|
|
Beiträge: 27
|
|
|
|
Anmeldedatum: 07.01.10
|
|
|
|
Wohnort: ---
|
|
|
|
Version: R2007b
|
|
|
|
|
|
Verfasst am: 10.01.2013, 11:31
Titel:
|
|
Hallo Testuser,
natürlich vorher auf die gleiche Länge prüfen. Mit Funktionsblock und mit "sizeof" Befehl. Sind die beiden Arrays unterschiedlich lang dann ist ja alles klar. Wenn beide gleich lang sind, dann subtrahieren um fest zu stellen ob die beiden identisch sind.
|
|
|
Raketenmaid |
Forum-Fortgeschrittener
|
|
Beiträge: 58
|
|
|
|
Anmeldedatum: 28.09.12
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 11.01.2013, 13:46
Titel:
|
|
Ich würde an Deiner Stelle einen Funktionsplot nehmen und dann mittels Befehl strcmp jeweils zwei strings vergleichen und dann eine check-Variable entsprechend mit einem Wert belegen, je nach dem, welche der verglichenen strings übereinstimmen. Diesen Wert kannst Du dann für Deinen Schalter nutzen.
|
|
|
Raketenmaid |
Forum-Fortgeschrittener
|
|
Beiträge: 58
|
|
|
|
Anmeldedatum: 28.09.12
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 11.01.2013, 15:48
Titel:
|
|
ich meinte natürlich einen Funktionsblock und nicht einen Funktionsplot ...
|
|
|
testuser |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 14.01.2013, 10:35
Titel:
|
|
Danke für die Tips . . . das subtrahien ist natürlich die beste Variante . . .
|
|
|
|
|
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 - 2024
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.
|
|