|
|
| steffen1187 |

Forum-Anfänger
|
 |
Beiträge: 25
|
 |
|
 |
Anmeldedatum: 19.03.12
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 27.03.2012, 08:06
Titel: eval - Verschachtelung
|
 |
| |
 |
|
Guten Morgen zusammen,
ich habe mal wieder ein Problem, an dem ich so nicht weiter komme.
als kleine Erklärung vorneweg:
Ich habe für mehrere Objekte Messwerte in Form von jeweils einer 15x14 Matrix liegen. Ich möchte in mehreren Schritten zunächst Fehlende Messwerte interpolieren, dannmit interp2 weiter Stützpunkte generieren und zuletzt plotten. Generell hab ich das ganze schon gelöst, allerdings von Hand für jedes Objekt und immer wieder das selbe untereinander.
Nun habe ich mir gedacht das muss doch auch einfacher gehen und Arbeite mit dem eval Befehl.
nach und nach werden weiter Objekte mit dem Namen inj... hinzukommen. inj_mess zum Beispiel ist dann die Matrix mit fehlenden Werten, inj_voll mit inter / extrapolierten Werten
nun habe ich folgendes Problem:
Ich möchte wie schon kurz beschrieben in einer weiteren for i=1:Anzahl_inj
Schleife für alle Objekte etwa sablaufen lassen. eval(inj_mess{j}) gibt mir dann ja zum Beispiel den Variablennamen zurück den ich hinterlegt habe. Die Variable wird zu Beginn des m_files geladen und ist wie beschrieben eine 15x14 Matrix. Wie kann ich nun direkt auf einen bestimmten Wert zugreifen? Bislang definiere ich mit mess = eval(inj_mess{j}) und greife mit mess(i,k) auf ein Element zu.
Im nächsten Schritt soll allerdings dann die noch nicht vorhandene Matrix inj_voll gefüllt werden, wenn ich mit voll=eval(inj_voll{j}) dies auf die selbe Art machen will wird jedoch die Fehlermeldung "Error using eval
Undefined function or variable" ausgegeben.
Sehe ich das richtig, dass der Inhalt von inj_voll nach wie vor nur ein STring ist und ich Matlab beibringen muss, dass es nun eine Matrix zu sein hat. Nur
Wie mach ich das?
Ich steh irgendwie auf m Schlauch
Danke euch!
Grüße
Steffen
|
|
|
|
|
|
| Winkow |

Moderator
|
 |
Beiträge: 3.842
|
 |
|
 |
Anmeldedatum: 04.11.11
|
 |
|
 |
Wohnort: Dresden
|
 |
|
 |
Version: R2014a 2015a
|
 |
|
|
 |
|
Verfasst am: 27.03.2012, 08:17
Titel:
|
 |
hmm wie kommen die neuen variabelen denn hinzu? eval ist immer schlecht zu debuggen. und sollte wenn möglich vermieden werden. die daten sollten lieber gleich in einem cellarray angelegt werden oder in einer struct falls man die namen behalten will. du solltest also versuchen lieber gleich bei der variablen eingabe die werte korrekt anzulegen anstatt später alles mit eval machen zu müssen
auf inhalte von cellarrays kann mana normal zugreifen ohne es extra einer anderen variablen zuzuweisen
|
|
|
|
| steffen1187 |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 25
|
 |
|
 |
Anmeldedatum: 19.03.12
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 27.03.2012, 08:21
Titel:
|
 |
Servus,
die einzelnen Messwerte / die Matrizen "inj_mess" lege ich manuell an, danach sollen sie nur noch verwendet werden
ich werde mich mal einlesen was n cell - array ist, vllt hilft mir das ja weiter
dankeschön
Grüße
|
|
|
|
| Winkow |

Moderator
|
 |
Beiträge: 3.842
|
 |
|
 |
Anmeldedatum: 04.11.11
|
 |
|
 |
Wohnort: Dresden
|
 |
|
 |
Version: R2014a 2015a
|
 |
|
|
 |
|
Verfasst am: 27.03.2012, 08:44
Titel:
|
 |
du verwendest oben schon ein cellarray. aber wenn du die einzelnen messwerte anlegst kannst du sie auch gleich in dem cellarray anlegen und nicht erst in ner extra datai und dnan mit eval einlesen. wenn du gerne die namen benutzen willst dann leg es in einer struct an.
oder so. da kann man damm mit
die einzelnen einträge ermitteln und per schleife durchlaufen wenn man das will.
|
|
|
|
| steffen1187 |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 25
|
 |
|
 |
Anmeldedatum: 19.03.12
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 27.03.2012, 10:22
Titel:
|
 |
Servus,
ich habs eben mal ausprobiert und glaub s gibt noch ein kleines Missverständnis:
ich möchte ein Array "inj_mess" haben, in dem die Variablennamen "inj224_mess" oder "inj227_mess" etc. liegen. Hiermit möchte ich nach und nach auf die Messwerte für verschiedene Objekte zugreifen. Die Messwerte heißen "inj224_mess" zum Beispiel und stellen eine weitere Matrix dar. Per inj_mess{1}(1,1) greife ich auf den Buchstaben i von "inj224_mess" zu und nicht auf den Inhalt "Spalte 1, Zelle 1" der Matrix mit dem Namen "inj224_mess"
ich hoff ich stell mich grad nicht besonders ungeschickt an...
edit: ich zieh meine Frage zurück, ich hab mich dumm angestellt!
|
|
|
|
|
|
|
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.
|
|