| 
|  
|  | 
| 
 
 
	
		|  | Variablen automatisch erzeugen ?!? |  |  
 
| 
| Pete |  
| Gast
 
 
 
|  |  
|  | Beiträge: --- |  |  
|  |  
|  | Anmeldedatum: --- |  |  
|  |  
|  | Wohnort: --- |  |  
|  |  
|  | Version: --- |  |  
|  |  |  
|  |  | 
|  Verfasst am: 22.11.2007, 09:49    
Titel: Variablen automatisch erzeugen ?!? |  |  
| Hallo... 
 Muss für ein Projekt in der Hochschule einige Sachen in Matlab schreiben und kenne mich noch nicht so gut aus.
 Ich brauche mehrere Variablen die von einer Schleife automatisch erzeugt werden. Kenne das aus C, habe aber in der Matlab-Hilfe noch nix darüber gefunden.
 Es soll ungefähr so aussehen: Variablen x1...x7
 
 for i=1:7
 x(i)=...
 end
 
 habe schon (i),[i], ausprobiert und es hat nicht funktioniert.
 kann mir da wer weiterhelfen?
 
 Danke im Voraus
 |  |  
|  |  |  
		| 
 
 |  
| 
| outsider |  
|  
 Forum-Meister
 
 
 
|  |  
|  | Beiträge: 806 |  |  
|  |  
|  | Anmeldedatum: 03.09.07 |  |  
|  |  
|  | Wohnort: München |  |  
|  |  
|  | Version: R2012b |  |  
|  |  |  
|  |  | 
|  Verfasst am: 22.11.2007, 10:39    
Titel: |  |  
| Schaue nach den Funktionen EVAL, EVALIN, ASSIGNIN 
 
 
 
 
 MfG
 |  |  
|  |  
| 
| Pete |  
| Gast
 
 
 
|  |  
|  | Beiträge: --- |  |  
|  |  
|  | Anmeldedatum: --- |  |  
|  |  
|  | Wohnort: --- |  |  
|  |  
|  | Version: --- |  |  
|  |  |  
|  |  | 
|  Verfasst am: 22.11.2007, 10:59    
Titel: |  |  
| ahh ok... 
 aber wie kann ich das in der gui einbinden?
 
 Habe folgendes:
 
 for k=1:7
 handles.cfun = fit(handles.x2,handles.y(:,k),'poly2');
 plot(handles.cfun, 'g')
 end
 
 was er auch macht aber er überschreibt eben bei jedem schleifendurchgang das handles.cfun ... ich brauch jetzt handles.cfun1...handles.cfun7.
 |  |  
|  |  
| 
| outsider |  
|  
 Forum-Meister
 
 
 
|  |  
|  | Beiträge: 806 |  |  
|  |  
|  | Anmeldedatum: 03.09.07 |  |  
|  |  
|  | Wohnort: München |  |  
|  |  
|  | Version: R2012b |  |  
|  |  |  
|  |  | 
|  Verfasst am: 22.11.2007, 11:42    
Titel: |  |  
| wenn Du einen Struct erweitern willst, dann geht es viel einfacher mit SETFIELD. 
 
 
 
 MfG
 |  |  
|  |  
| 
| Pete |  
| Gast
 
 
 
|  |  
|  | Beiträge: --- |  |  
|  |  
|  | Anmeldedatum: --- |  |  
|  |  
|  | Wohnort: --- |  |  
|  |  
|  | Version: --- |  |  
|  |  |  
|  |  | 
|  Verfasst am: 22.11.2007, 11:53    
Titel: |  |  
| Mensch hier gibts aber schnelle Antworten  noch eine letzte Frage...  wie plotte ich das dann? innerhalb der schleife ohne plot (c1)... plot(c2)... schreiben zu müssen 
 habe das mit
 plot(eval('x%d',i),y)
 
 versucht, bringt folgende fehlermeldung:
 
 
 ??? Error using ==> plot
 Conversion to double from struct is not possible.
 |  |  
|  |  
| 
| outsider |  
|  
 Forum-Meister
 
 
 
|  |  
|  | Beiträge: 806 |  |  
|  |  
|  | Anmeldedatum: 03.09.07 |  |  
|  |  
|  | Wohnort: München |  |  
|  |  
|  | Version: R2012b |  |  
|  |  |  
|  |  | 
|  Verfasst am: 22.11.2007, 13:01    
Titel: |  |  
| damit kannst Du die Felder plotten die 2 Zeile selectiert nur die Namen, die mit "c" anfangen, da ja nicht alle Elemente der Handlesstruktur plottbar sind...
 
 
 
 
 
 
 MfG
 P.S. trotz der Tatsache, dass es so funzt, ist diese Lösung weder schön und gut, noch robust und elegant... Aber Du musst es wissen... Ich hätte lieber nur eine einzige Variable angelegt die alle Werte als Array umfasst. Falls die jeweiligen Vektoren unterschiedlich lang sind, dann sollten die CellArrays zum Einsatz kommen. So oder So würde man dann die FOR-Schleifen loswerden und der Code ist übersichtlicher und kleiner...
 |  |  
|  |  
| 
| Pete |  
| Gast
 
 
 
|  |  
|  | Beiträge: --- |  |  
|  |  
|  | Anmeldedatum: --- |  |  
|  |  
|  | Wohnort: --- |  |  
|  |  
|  | Version: --- |  |  
|  |  |  
|  |  | 
|  Verfasst am: 23.11.2007, 10:34    
Titel: |  |  
| Ja das ist nicht "elegant" ... aber ich versteh nicht ganz wie ich das besser machen kann... ich schilder mal genau was ich machen will. 
 Also ich hab eine GUI wo ich per Knopfdruck Daten fiten möchte.
 Ich habe eine 7x7 Matrix handles.y und eine handles.x2 als Spaltenvektor.
 Es soll also jeweils eine Spalte der Matrix mit x2 gefittet werden.
 Ich brauche 7 Kurven die ich dann weiterverwenden möchte (ausgeben und speichern).
 
 
 Und Problem 2:
 
 habe diese 7x7 matrix aus einem spaltenvektor mit 49 Werten über 2 ineinander verschachtelten for-schleifen erzeugt. Da ich mitlerweile überall gelesen habe das das nicht "die feine Art" ist, möchte ich wissen ob das einfacher geht. Das soll aber einmal eine matrix sein die die 1ten 7 Werte in die 1ste Spalte dann nächsten 7 Werte in die 2te Spalte ... schreibt.
 Die 2te Matrix soll aber so aussehen: 1,7,14,..., Wert ind die 1te Spalte dann 2,8,15,..., Wert in die 2te Spalte.
 
 Hatte das bisher so gelöst *schäm*
   
 
 |  |  
|  |  
| 
| Pete |  
| Gast
 
 
 
|  |  
|  | Beiträge: --- |  |  
|  |  
|  | Anmeldedatum: --- |  |  
|  |  
|  | Wohnort: --- |  |  
|  |  
|  | Version: --- |  |  
|  |  |  
|  |  | 
|  Verfasst am: 25.11.2007, 20:30    
Titel: |  |  
| Problem 2 habe ich jetzt mal so gelöst... (for-Schleife zwar weg aber "schön" finde ich das trotzdem nicht). 
 
 |  |  
|  |  
| 
| outsider |  
|  
 Forum-Meister
 
 
 
|  |  
|  | Beiträge: 806 |  |  
|  |  
|  | Anmeldedatum: 03.09.07 |  |  
|  |  
|  | Wohnort: München |  |  
|  |  
|  | Version: R2012b |  |  
|  |  |  
|  |  | 
|  Verfasst am: 26.11.2007, 23:33    
Titel: |  |  
| Hier ist eine elegante Alternative zu den verschachtelten Schleifen. evtl. musst Du bissl anpassen.
 
 
 
 
 MfG
 P.S. Man darf nicht unter MATLAB 1x dimensional denken als wenn Du in C programmierst ...
  MATLAB erlaubt ein N-dimensionales Denken - auch als Vektorization gennant. Wenn man das anwendet kriegt man nicht nur (fast) alle Schleifen aus dem Code weg, sondern bekommt auch einen  besseren und verständlicheren und vor allem viel schnelleren Code. |  |  
|  |  
|     
 
 | 
 
 |  
| 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.
 
 
 |  |