|
|
Auf mit assignin erstellte Variablen dynamisch zugreifen |
|
Shin |

Forum-Century
|
 |
Beiträge: 117
|
 |
|
 |
Anmeldedatum: 12.11.09
|
 |
|
 |
Wohnort: Karlsruhe
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 16.11.2009, 16:19
Titel: Auf mit assignin erstellte Variablen dynamisch zugreifen
|
 |
! Aktuelles und aktualisiertes, sowie auf den "Punkt gebrachteres" Problem in meinem dritten Beitrag in diesem Thread !
Hallo Leute, folgender Sachverhalt:
ich habe mir mit
9*12 verschiedene Variablen erstellt, heißen J2000_1 bis J2008_12.
Einfaches Problem:
Ich kann die variablen gezielt ansprechen, sprich:
funktioniert.
Aber wenn ich jetzt dynamisch darauf zugreifen will, sprich:
gibt er mir nicht den Wert (zB, wenn k=2000 und i = 2 ist, die Länge von J2000_2) aus, sondern nur die Länge der Zeichen, also 7 (J, 2, 0, 0, 0, _, 2).
Wie muss ich das verändern? Wäre recht wichtig, dass ich von jeder Variable die Länge kenne. Denke die Lösung sollte recht einfach sein, komme aber leider nicht drauf.
Grüße und bestem Dank,
Shin.
Zuletzt bearbeitet von Shin am 16.11.2009, 16:42, insgesamt einmal bearbeitet
|
|
|
|
|
Shin |
Themenstarter

Forum-Century
|
 |
Beiträge: 117
|
 |
|
 |
Anmeldedatum: 12.11.09
|
 |
|
 |
Wohnort: Karlsruhe
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 16.11.2009, 16:22
Titel:
|
 |
Alternativproblem, dann wäre oben genanntes irrelevant, da anders lösbar:
Wie füge ich in eine Matrix die Werte einer anderen Matrix ein?
Angenommen ich habe eine 2x2 Matrix und erstelle mir eine 3x3-Nullmatrix.
Nun will ich die 2x2 Matrix in die 3x3 Matrix einsetzen. Wie geht das?
Veranschaulicht:
meine 2x2-matrix
1 3
4 5 in
folgende 3x3-Nullmatrix:
0 0 0
0 0 0
0 0 0
soll so aussehen:
1 3 0
4 5 0
0 0 0
Gruß!
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.501
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 16.11.2009, 16:29
Titel:
|
 |
Hallo,
da die 2. Frage übersichtlicher ist, die Antwort dazu:
Grüße,
Harald
|
|
|
Shin |
Themenstarter

Forum-Century
|
 |
Beiträge: 117
|
 |
|
 |
Anmeldedatum: 12.11.09
|
 |
|
 |
Wohnort: Karlsruhe
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 16.11.2009, 16:41
Titel:
|
 |
Vielen Dank, funktioniert einwandfrei, so wie ich es mir vorgestellt hatte.
Leider lag ich nicht richtig, dass der zweite Weg den ersten komplett ersetzen würde.
Ich formuliere mein Problem nochmal kurz und knapp, auf verständliche Weise:
In meinem Workspace sind 12*9 Variablen, sie heißen
J2000_1
J2000_2
J2000_3
...
J2008_12
Nun will ich darauf dynamisch zugreifen, damit ich nicht jede einzelne der 108 Variablen gezielt einzeln aufrufen muss.
Ich habe folgendes nun geschrieben:
Nur anstelle der einzelnen Variable 'J2000_4' sollen nun ALLE angesprochen werden und in einen Nullvektor eingefügt werden.
?
Gruß und besten Dank,
Chris.
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.501
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 16.11.2009, 16:49
Titel:
|
 |
Hallo,
dazu brauchst du eine (doppelte) for-Schleife, und darin den Befehl EVAL.
Achtung: die von mir angegebene Lösung schreibt die Matrix A immer in die linke obere Ecke von B.
Grüße,
Harald
|
|
|
Shin |
Themenstarter

Forum-Century
|
 |
Beiträge: 117
|
 |
|
 |
Anmeldedatum: 12.11.09
|
 |
|
 |
Wohnort: Karlsruhe
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 16.11.2009, 16:54
Titel:
|
 |
Super, vielen Dank.
Dann werde ich mich mit EVAL auseinandersetzen.
Das mit der linken oberen Ecke konnte ich nachvollziehen und passt auch zu meinem Problem hier.
Gruß.
|
|
|
Shin |
Themenstarter

Forum-Century
|
 |
Beiträge: 117
|
 |
|
 |
Anmeldedatum: 12.11.09
|
 |
|
 |
Wohnort: Karlsruhe
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 16.11.2009, 17:33
Titel:
|
 |
Hallo nochmal.
Irgendwas stimmt nicht...
sollte doch funktionieren? Oder etwa nicht?
??? Undefined function or method 'eval' for input arguments of type 'double'.
ist das Resultat.
Gruß,
Chris.
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.501
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 16.11.2009, 17:38
Titel:
|
 |
Hallo,
ich muss sagen, ich weiss jetzt nicht, was du machen willst.
Klar ist aber, dass a in deinem Fall die length, also eine Zahl ist. Als Eingabeargument für eval brauchst du aber einen String.
z.B. so:
(natürlich weiss ich jetzt nicht, ob das das macht, was du willst)
Es ist vielleicht einfacher, wenn du dir erst einmal anschaust, was das a genau ist, bevor du es in EVAL hineinsteckst.
Grüße,
Harald
|
|
|
Shin |
Themenstarter

Forum-Century
|
 |
Beiträge: 117
|
 |
|
 |
Anmeldedatum: 12.11.09
|
 |
|
 |
Wohnort: Karlsruhe
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 16.11.2009, 17:46
Titel:
|
 |
Vielen Dank, Harald.
Ich glaube zu der Realisierung meines Projektes fehlt mir ganz klar das Verständnis wie man ein String genau erstellt und wie sich String von einer Zahl in Matlab unterscheidet... danke für deinen Code.
Werde mir mal genau anschauen wie man den Code umschreiben muss, damit MATLAB es auch als String erkennt. Daran hat es bisher gewaltig gehakt!
Grüße und besten Dank, du hast mich schon ein großes Stück weiter gebracht!
edit#1:
Ich brauche die Länge der Variablen an einer anderen Stelle, hoffe ich bekomme das auch äquivalent zum oben genannten Problem (Matrix und Null-Matrix verschmelzen) gebacken.
|
|
|
|
|
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.
|
|