|
|
Liste mit Variablen einlesen |
|
longdon |
Forum-Anfänger
|
|
Beiträge: 30
|
|
|
|
Anmeldedatum: 03.03.12
|
|
|
|
Wohnort: An der Ostsee
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 03.03.2012, 19:32
Titel: Liste mit Variablen einlesen
|
|
|
|
|
hallo,
ich studiere e-technik und arbeite grade an meiner bachelorarbeit. das thema ist erzeugung eines virtuellen prototyps für e fahrzeuge unter simulink. bin schon ein ganzes stück weit und habe schon einiges geschafft. eine sache macht es mir im moment jedoch schwer. ich möchte zu dem programm eine TXT datei anlegen die in etwa so aussieht:
Af in m2: 1.5
Cr : 0.3
Cw : 0.8
r in cm : 40
.
.
.
es sollen also daten für das fahrzeug hauptsächlich die physik übergegeben werden und zwar in einer txt datei. der sinn dahinter ist das später jemand der absolut keine ahnung hat von simulink oder programmieren diese txt datei öffnet und einfach nu die werte ändert. das programm sollte dann alle geänderten werte bei durchlauf selber wieder einlesen und entsprechende ergebnisse ausgeben. meine frage bezieht sich hierbei darauf. wie stelle ich die daten in der TXT datei am besten dar also muss ich die mit gewissen abständen trennen etc. oder kann ich das so machen wie beschrieben??
wie kann ich in matlab am einfachsten den code generieren das die datei eingelesen wird und mir dann als variablen unter simulink im entsprechenden from workspace block vorliegt
wenn mir jemand helfen würde wäre ich echt dankbar
bin neu hier im forum daher weiss ich nicht ob es die frage schon gibt, falls ja tut es mir leid. kleinschreibung und fehlende kommas verzeihen, alter chatter
beste grüße longdon
_________________
Treffen sich ne Null und ne Acht. Sagt die Null:"Schicker Gürtel "
|
|
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.492
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 03.03.2012, 23:46
Titel:
|
|
Hallo,
du kannst z.B. Code dieser Form verwenden, um die Parameter nach MATLAB zu importieren.
Ich persönlich fände es ja schöner, wenn man die Parameter in einer GUI eingeben kann
Grüße,
Harald
|
|
|
longdon |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 30
|
|
|
|
Anmeldedatum: 03.03.12
|
|
|
|
Wohnort: An der Ostsee
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 04.03.2012, 09:44
Titel:
|
|
finde es sehr schön das du mir geantwortet hast. leider bin ich programmiertechnisch nicht grade der meister vom fach. kannst du mir die zeilen mal einzelnd erläutern was da passiert. will das nicht nur reinkopieren! und weiss das programm intern dann schon das die einzelnen variablen af cr und so weiter heissen oder wie funktioniert das? danke für deine hilfe!!!
_________________
Treffen sich ne Null und ne Acht. Sagt die Null:"Schicker Gürtel "
|
|
|
longdon |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 30
|
|
|
|
Anmeldedatum: 03.03.12
|
|
|
|
Wohnort: An der Ostsee
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 04.03.2012, 09:51
Titel:
|
|
fid = fopen('fahrzeugdaten.txt');
p = textscan('%*s %f', 'delimiter', ':', 'CollectOutput', true);
fclose(fid)
Error using textscan
Param/value pairs must come in pairs.
das zeigt er mir dann an? also zu funktionieren scheint es noch nicht..
_________________
Treffen sich ne Null und ne Acht. Sagt die Null:"Schicker Gürtel "
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.492
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 04.03.2012, 10:17
Titel:
|
|
Hallo,
was die Zeilen machen, könntest du auch herausfinden, indem du die Befehle in der Doku nachschlägst.
1. Datei öffnen
2. In Datei lesen (Muster: String überspringen, Double einlesen; Trennzeichen : ). Die Variablen werden in einem Vektor p gesammelt. Man könnte es auch so machen, dass du eine Struktur bekommst, deren Felder die Variablennamen sind. Das ist aber schwieriger, da MATLAB ja nicht wissen kann, was in deiner Textdatei nun Variablenname und was Einheit ist - vor allem, da du mal eine Einheit hast und mal nicht.
3. Datei schließen.
Ich hatte das hingeschrieben, ohne es wirklich in MATLAB auszuprobieren. Ein Blick in die Doku hätte auch hier geholfen. So sollte es definitiv gehen:
Grüße,
Harald
|
|
|
longdon |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 30
|
|
|
|
Anmeldedatum: 03.03.12
|
|
|
|
Wohnort: An der Ostsee
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 04.03.2012, 10:55
Titel:
|
|
hm nein es geht immer noch nicht
fid = fopen('fahrzeugdaten.txt');
p = cell2mat(textscan(fid, '%*s %f', 'delimiter', ':'));
fclose(fid);
habe ich eingegeben und dann enter gedrückt.. daraufhin zeigt er mir an.
Error using textscan
Invalid file identifier. Use fopen to generate a valid file identifier.
ich habe meinen stuff bis jetzt in simulink erledigt daher stehe ich hier ganz schön auf dem schlauch.. du meintest doch, dass das so gehe muss. warum funktioniert das denn bei mir nicht
_________________
Treffen sich ne Null und ne Acht. Sagt die Null:"Schicker Gürtel "
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.492
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 04.03.2012, 11:00
Titel:
|
|
Hallo,
das bedeutet wahrscheinlich, dass irgendwas mit der Datei nicht stimmt. Ist die Datei im selben Verzeichnis? wenn nicht, solltest du den gesamten Pfad angeben.
Du solltest solche Programme auch immer in den Editor schreiben und von dort ausführen.
Grüße,
Harald
|
|
|
longdon |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 30
|
|
|
|
Anmeldedatum: 03.03.12
|
|
|
|
Wohnort: An der Ostsee
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 04.03.2012, 11:04
Titel:
|
|
also die datei liegt auf dem desktop
wo muss ich die denn hinlegen? dachte das wäre egal wo die liegt..
den code habe ich im command window eingegeben und mit enter bestätigt..
ist das die ursache?
_________________
Treffen sich ne Null und ne Acht. Sagt die Null:"Schicker Gürtel "
|
|
|
longdon |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 30
|
|
|
|
Anmeldedatum: 03.03.12
|
|
|
|
Wohnort: An der Ostsee
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 04.03.2012, 11:07
Titel:
|
|
das "Programm" ist leer. also ich habe bis dato keinerlei code in matlab. das gesammte programm soll unter simulink laufen. dies dient nur dazu das matlab hilft die dateien für simulink einzulesen damit ich später mit" from workspace" darauf zurückgreifen kann
_________________
Treffen sich ne Null und ne Acht. Sagt die Null:"Schicker Gürtel "
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.492
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 04.03.2012, 11:20
Titel:
|
|
Hallo,
die Datei muss im momentanen Verzeichnis oder im MATLAB-Suchpfad liegen, oder du musst (wie gesagt) den kompletten Pfad angeben.
Letztlich kannst du den Code ja in eine Callback-Function des Modells schreiben, aber zum Testen ist das ja weniger geeignet.
Grüße,
Harald
|
|
|
longdon |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 30
|
|
|
|
Anmeldedatum: 03.03.12
|
|
|
|
Wohnort: An der Ostsee
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 04.03.2012, 11:29
Titel:
|
|
hallo,
also je mehr du schreibst um so verwirrter bin ich :/ kenne mich nicht so gut aus um dir richtig folgen zu können.. das muss doch ganz einfach gehen? oder nicht? den suchpfad gebe ich einfach links unter current folder an oder?
_________________
Treffen sich ne Null und ne Acht. Sagt die Null:"Schicker Gürtel "
|
|
|
longdon |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 30
|
|
|
|
Anmeldedatum: 03.03.12
|
|
|
|
Wohnort: An der Ostsee
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 04.03.2012, 11:33
Titel:
|
|
also jetzt gibt er keinen fehler mehr aus
habe das verzeichnniss auf desktop geändert und er liest die datei jetzt ein...
zeigt mir dann unter workspace aber ANS FID und P an und alle drei variablen enthalten nix sinnvolles.. scheint also noch nicht zu funktionieren
_________________
Treffen sich ne Null und ne Acht. Sagt die Null:"Schicker Gürtel "
|
|
|
longdon |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 30
|
|
|
|
Anmeldedatum: 03.03.12
|
|
|
|
Wohnort: An der Ostsee
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 04.03.2012, 11:37
Titel:
|
|
bingo bongo es geht
HURRA bloß wundern tut mich das ich jetzt drei variablen habe statt einer?
das ist merkwürdig. auf jeden fall hat die datei P jetzt ein array mit den daten die für mich wichtig sind..
ohne deine hilfe wäre ich hier echt aufgeschmissen
VIELEN DANK
_________________
Treffen sich ne Null und ne Acht. Sagt die Null:"Schicker Gürtel "
|
|
|
longdon |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 30
|
|
|
|
Anmeldedatum: 03.03.12
|
|
|
|
Wohnort: An der Ostsee
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 04.03.2012, 11:44
Titel:
|
|
wieso habe ich jetzt drei variablen??
sag mal chef wenn ich jetzt mit dem from workspace arbeite, dann läuft das doch so ab das ich einfach mein from workspace block eine variable gebe. einlesen tuhe ich die dann mit zum beispiel input1 = [ Cr ]; oder ? soweit habe ich mich durch das tutorial durchgelesen. jetzt muss ich aber nur noch die datei aus der fahrzeugdatendatei auslesen und seperat speichern oder kann ich gegebenfalls auch mit der input1 = [ ........ ] exakt den wert aus der bereits eingelesenen datei rausnehmen, ihm beispielstweise angeben das input1 = .... dritte datei aus der TXT ist..
wenn du mri da noch helfen könntest wäre das echt nice
_________________
Treffen sich ne Null und ne Acht. Sagt die Null:"Schicker Gürtel "
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.492
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 04.03.2012, 11:57
Titel:
|
|
Hallo,
mir persönlich wäre es lieber, mit Constant-Blöcken zu arbeiten. Da kannst du direkt eingeben, mit was du arbeiten willst, also z.B. p(3), wenn es der dritte Parameter ist.
Grüße,
Harald
|
|
|
|
Gehe zu Seite 1, 2 Weiter
|
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.
|
|