|
|
Constant-Block in String umwandeln |
|
Deniz |
Forum-Fortgeschrittener
|
|
Beiträge: 90
|
|
|
|
Anmeldedatum: 31.07.10
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 11.04.2011, 14:21
Titel: Constant-Block in String umwandeln
|
|
Hallo,
ich möchte einer User's defined function einen String und 2 numbers übergeben, da ich ein M-File habe, welches diese als Input benötigt.
( function Out = x(fun,In1,In2))
ist es möglich, einen Constant-Block in einen String umzuwandeln?
MfG
Deniz
|
|
|
|
|
_Peter_ |
Moderator
|
|
Beiträge: 537
|
|
|
|
Anmeldedatum: 08.12.10
|
|
|
|
Wohnort: ---
|
|
|
|
Version: 7.10, 2010a
|
|
|
|
|
|
Verfasst am: 11.04.2011, 15:28
Titel:
|
|
Hallo Deniz,
Deniz hat Folgendes geschrieben: |
einen Constant-Block in einen String umzuwandeln?
|
wie meinst du das? Willst du den Wert umwandeln? Dann mit:
Ansonsten verstehe ich deine Frage nicht.
_________________
Gruß
Peter
_________________
goMatlab-Knigge - dran gehalten?!
Schon in den FAQ gesucht? Oder der MATLAB Hilfe?
Ist vielleicht bei den Skripten oder den Tutorials was für dich dabei?
|
|
|
Deniz |
Themenstarter
Forum-Fortgeschrittener
|
|
Beiträge: 90
|
|
|
|
Anmeldedatum: 31.07.10
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 11.04.2011, 16:31
Titel:
|
|
Ich habe mal ein Bild angehängt wie ich es meine.
Da meinem m-file ein String und 2 Values übergeben werden, müsste ich den einen Constant-Block ja als String an den function-Block übergeben.
Ich hoffe es ist nun deutlicher.
Gruß
Deniz
Beschreibung: |
|
Download |
Dateiname: |
Constant.jpg |
Dateigröße: |
11.2 KB |
Heruntergeladen: |
499 mal |
|
|
|
Deniz |
Themenstarter
Forum-Fortgeschrittener
|
|
Beiträge: 90
|
|
|
|
Anmeldedatum: 31.07.10
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 11.04.2011, 17:17
Titel:
|
|
Ich habe diesen Beitrag hier gefunden:
http://www.gomatlab.de/strings-in-s.....k-verarbeiten-t15557.html
Aber ich bekomme es noch nicht so ganz hin:
Ich habe meine Constant-Block in ein Subsystem eingefügt und den Masken-Editor aufgerufen. Meinen Constant-Block habe ich mit h_pT benannt (Doppelklick auf den Block).
Im Masken-Editor bin ich dann auf Initialization und habe dort
eingegeben. Es funktioniert aber nicht. Muss ich am Constant-Block noch etwas ändern, oder evtl in der Maske?
MfG
Deniz
|
|
|
_Peter_ |
Moderator
|
|
Beiträge: 537
|
|
|
|
Anmeldedatum: 08.12.10
|
|
|
|
Wohnort: ---
|
|
|
|
Version: 7.10, 2010a
|
|
|
|
|
|
Verfasst am: 12.04.2011, 09:53
Titel:
|
|
Also das habe ich noch nicht gemacht, aber im verlinkten Beitrag steht:
SimRookie hat Folgendes geschrieben: |
Im Masken Editor die Variable "Name" definieren.
|
Hast du das gemacht?
_________________
Gruß
Peter
_________________
goMatlab-Knigge - dran gehalten?!
Schon in den FAQ gesucht? Oder der MATLAB Hilfe?
Ist vielleicht bei den Skripten oder den Tutorials was für dich dabei?
|
|
|
Deniz |
Themenstarter
Forum-Fortgeschrittener
|
|
Beiträge: 90
|
|
|
|
Anmeldedatum: 31.07.10
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 12.04.2011, 10:19
Titel:
|
|
Habe ich definiert, ja.
Ich hab mal Bilder angehängt von meinem Beispiel-Modell und den einzelnen Registereinträgen plus dem Fehler.
Mein MUX erwartet auch einen double, deswegen meckert das System auch rum.
Aber iwie muss es ja funktionieren
Beschreibung: |
|
Download |
Dateiname: |
Fehler.jpg |
Dateigröße: |
45.35 KB |
Heruntergeladen: |
482 mal |
Beschreibung: |
|
Download |
Dateiname: |
Subsystem_Maske.jpg |
Dateigröße: |
14.74 KB |
Heruntergeladen: |
556 mal |
Beschreibung: |
|
Download |
Dateiname: |
Mask_Editor_Initialization.jpg |
Dateigröße: |
41.99 KB |
Heruntergeladen: |
576 mal |
Beschreibung: |
|
Download |
Dateiname: |
Mask_Editor_Parameter.jpg |
Dateigröße: |
53.87 KB |
Heruntergeladen: |
540 mal |
Beschreibung: |
|
Download |
Dateiname: |
Versuchsmodell.jpg |
Dateigröße: |
11.01 KB |
Heruntergeladen: |
526 mal |
|
|
|
SimRookie |
Forum-Anfänger
|
|
Beiträge: 27
|
|
|
|
Anmeldedatum: 07.01.10
|
|
|
|
Wohnort: ---
|
|
|
|
Version: R2007b
|
|
|
|
|
|
Verfasst am: 12.04.2011, 10:43
Titel:
|
|
Hallo Leute,
ich habe dem Deniz zwar per PN geantwortet, hier aber noch mal für alle, die es interessiert zur Verdeutlichung:
Der Begriff "Definieren" im verlinkten Beitrag wurde von mir etwas unglücklich gewählt. Besser wäre "als Parameter" anlegen. Im Maskeditor sind vier Register, einer davon ist Parameters. Dort soll auch ein Parameter angelegt werden, der mit der Variablen aus Constat Block verknüpft wird, da sonst kein Zusammenhang zwischen dem Block und der Maske besteht und der Code im Initialization-Register keine Bedeutung hat. Der Name aus dem Parametrs-Register erscheint dann als Alias für die Variable.
Die Einschränkung dabei ist, dass die Konvertierung des Strings in ein Array nicht wärend der Simulation statt findet. War bei mir auch nicht nötig.
Ich hoffe dass es jetzt etwas verständlicher ist.
Gruß
SimRookie
|
|
|
SimRookie |
Forum-Anfänger
|
|
Beiträge: 27
|
|
|
|
Anmeldedatum: 07.01.10
|
|
|
|
Wohnort: ---
|
|
|
|
Version: R2007b
|
|
|
|
|
|
Verfasst am: 12.04.2011, 10:55
Titel:
|
|
Hallo Deniz,
aus Deinen Sreenshorts sehe ich dass Du alles soweit richtig gemacht hast. Jetzt zu deinem Problem, ich weis wie es ist wenn man auf einer Sache fokussiert ist, sodass man die einfachsten Dinge nicht sieht. Die Lösung: im Maskeditor konvertiere dein String nicht in ein uint_8 Array sondern in ein ... Array, genau Du hast es. (Bitte nicht falsch verstehen, ich will dich nicht vera..). Ich bin sicher darauf wärst Du selber gekommen.
Gruß
SimRookie
|
|
|
Deniz |
Themenstarter
Forum-Fortgeschrittener
|
|
Beiträge: 90
|
|
|
|
Anmeldedatum: 31.07.10
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 12.04.2011, 11:11
Titel:
|
|
Ok...ich nehms nich persönlich, aber trotzdem steh ich auf dem Schlauch. Nachdem ein double erwartet wird, hab ich es jetzt in ein double umgewandelt.
Jedoch kommt jetzt wieder ein Fehler, 'unknown calling Function to xy'.
Sorry, dass ich mich gerade so dumm anstelle!(Als Ausrede vllt: Ich arbeite gerade auch noch an anderen Problemen )
Gruß
|
|
|
SimRookie |
Forum-Anfänger
|
|
Beiträge: 27
|
|
|
|
Anmeldedatum: 07.01.10
|
|
|
|
Wohnort: ---
|
|
|
|
Version: R2007b
|
|
|
|
|
|
Verfasst am: 12.04.2011, 11:25
Titel:
|
|
Hallo Deniz,
also wenn Du nur, und nur uint8 in double geändert hast dann dürfte es kein Problem mit Konvertierung geben. Dann musst du den Fehler in deiener MATLAB-Fcn suchen. Besser wäre Sreenshot der Fehlermeldung.
Gruß
SimRookie
|
|
|
Deniz |
Themenstarter
Forum-Fortgeschrittener
|
|
Beiträge: 90
|
|
|
|
Anmeldedatum: 31.07.10
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 12.04.2011, 11:31
Titel:
|
|
Ja, ich habe nur das bei der Initialisierung geändert.
Und als weiter Angabe noch: In der Maske des Function Blockes steht XSteam(u(1),u(2),u(3)), wo bei wie gesagt im m-File steht XSteam(fun,In1,In2).
ich übergebe dann im Moment doch gerade 3 doubles an meine Funktion, oder nicht? Erkennt mein m-file das erste double denn dann als string?
Beschreibung: |
|
Download |
Dateiname: |
Fehler2.jpg |
Dateigröße: |
91.79 KB |
Heruntergeladen: |
473 mal |
|
|
|
SimRookie |
Forum-Anfänger
|
|
Beiträge: 27
|
|
|
|
Anmeldedatum: 07.01.10
|
|
|
|
Wohnort: ---
|
|
|
|
Version: R2007b
|
|
|
|
|
|
Verfasst am: 12.04.2011, 12:12
Titel:
|
|
Hallo Deniz,
insgesammt übergibst Du der Matlab-Fcn 6 double Werte, 4 aus dem String + p + T. Allerdings kann ich dir mit dem Fehler nicht weiter helfen. Viel Erfolg noch.
Ob deine Funktion die doubel Werte als Strings erkennt hängt von der Funktion ab. Zur Not kannst Du in der Funktion die ersten 4 Werte zurück konvertieren. Alles ohne Gwähr
Gruß
SimRookie
|
|
|
Deniz |
Themenstarter
Forum-Fortgeschrittener
|
|
Beiträge: 90
|
|
|
|
Anmeldedatum: 31.07.10
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 12.04.2011, 12:48
Titel:
|
|
Also ich weiß was du meinst, aber ich weiß nicht, wie ich das innerhalb des m-files zurückkonvertieren sollte.
Denn mein m-file baut ja nun mal darauf auf, dass es 3 Inputs besitzt. Ich kann ihm doch keine 6 Inputs übergeben.
Und iwie kommt es mir dann so vor, als wäre die Konvertierung zuvor dann für die Katz.
Nehme ich evtl den falschen User's defined Block bzw darf ich nicht mit MUX arbeiten?
Gruß
|
|
|
SimRookie |
Forum-Anfänger
|
|
Beiträge: 27
|
|
|
|
Anmeldedatum: 07.01.10
|
|
|
|
Wohnort: ---
|
|
|
|
Version: R2007b
|
|
|
|
|
|
Verfasst am: 12.04.2011, 13:51
Titel:
|
|
Hallo Deniz,
zum Thema Funktionen und alles was dran hängt würde ich auf die Matlab-Hilfe verweisen in der alles ausführlich beschreiben ist. Aus deinen Fragen habe ich den Eindruck, dass du generell mit den Grundlagen der Programmierung Schwierigkeiten hast. Sei mir nicht böse aber das hat nichts mehr mit dem Thema dieses Threads zutun, und daher würde ich dir raten ein neuen mit der passenderen Überschrift aufmachen.
Ich wünsche Dir viel Erfolg.
Gruß SimRookie
|
|
|
|
|
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.
|
|