|
|
|
Schleifenvariable in Variablennamen integrieren |
|
| Noc |

Forum-Newbie
|
 |
Beiträge: 9
|
 |
|
 |
Anmeldedatum: 01.09.10
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 01.09.2010, 17:02
Titel: Schleifenvariable in Variablennamen integrieren
|
 |
Hallo zusammen.
Mein Problem ist, dass ich die Laufvariable einer for-Schleife gerne in den Namen einer darin definierten Variablen einbauen will.
Leider komm ich da mit meinen sehr rudimentären Matlab Kenntnissen nicht mehr weiter.
Vom Prinzip her soll das folgenderma0en aussehen:
Ein weiteres Problem ist, dass ich eine andere Variable gerne in den Dateinamen mit einbauen will. Auch daran scheiter ich leider.
Beides sind mit Sicherheit lösbare Probleme, nur komme ich momentan mit Google und Forensuche nicht weiter.
Danke schonmal für eure Mühen.
Grüße Noc
|
|
|
|
|
|
| Harald |

Forum-Meister
|
 |
Beiträge: 24.502
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 01.09.2010, 18:07
Titel:
|
 |
Hallo,
ich würde davon abraten und lieber ein Cell Array verwenden. Das ist deutlich übersichtlicher. Wenns doch sein muss, dann mit EVAL.
Zum Dateinamen: etwas konkreter müsstest du schon werden. Grundsätzlich so:
Grüße,
Harald
|
|
|
|
| Noc |
Themenstarter

Forum-Newbie
|
 |
Beiträge: 9
|
 |
|
 |
Anmeldedatum: 01.09.10
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 01.09.2010, 20:12
Titel:
|
 |
Ok nach bisschen hilfen lesen, glaube ich zumindest das Prinzip verstanden zu haben. Ich erstelle vor der Schleife eine Cell(M N)
schreibe in der Schleife die einzelnen Einträge, ist mir noch nicht ganz klar wie... und kann danach auf die einzelnen Variabeln als Einträge der Cell abrufen.
Mein Beispiel vorher war etwas stark vereinfacht.
Genauer brauche ich 2 for Schleifen würde nachher gerne Variablen(Matrizen)
k00,k01 ..... kmn haben.
Also sowas wie :
Zu den Dateinamen in einfacher Form bekomme ich das nun hin.
Hätte aber gerne etwas wie
Nur endet das bei mir in Unexpected MATLAB expression.
Danke für die prompte Antwort !
Gruß Noc
|
|
|
|
| eupho |

Forum-Meister
|
 |
Beiträge: 777
|
 |
|
 |
Anmeldedatum: 07.01.09
|
 |
|
 |
Wohnort: Marburg
|
 |
|
 |
Version: R2009b
|
 |
|
|
 |
|
Verfasst am: 01.09.2010, 20:30
Titel:
|
 |
Ohne Kommata dazwischen..
Eine Cell sprichst du mit geschweiften Klammern an, beispielsweise:
|
|
|
|
| Noc |
Themenstarter

Forum-Newbie
|
 |
Beiträge: 9
|
 |
|
 |
Anmeldedatum: 01.09.10
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 01.09.2010, 21:28
Titel:
|
 |
??? Cell contents assignment to a non-cell array object.
Error in ==> Schleife at 14
k{m,n}= sin(k ....
dürfen in einer Cell nicht beliebige Einträge stehen ?
|
|
|
|
| Sco |

Forum-Meister
|
 |
Beiträge: 699
|
 |
|
 |
Anmeldedatum: 15.08.10
|
 |
|
 |
Wohnort: Dundee
|
 |
|
 |
Version: 2008a, 2010a
|
 |
|
|
 |
|
Verfasst am: 01.09.2010, 23:50
Titel:
|
 |
Hallo,
du musst Matlab sagen, dass k eine Cell ist! Ich habe mal dein Beispiel funktionsfähig gemacht und das k in der Schleife durch die Variable "results" ersetzt (weil du k schon mit 1 deklariert hasst). Die Deklaration des Cell Arrays ist in dem Falle results = cell(2,2).
ps: Semikolon nach For, If, While, end... sind unnötig.
MFG
Sco
|
|
|
|
| Noc |
Themenstarter

Forum-Newbie
|
 |
Beiträge: 9
|
 |
|
 |
Anmeldedatum: 01.09.10
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 02.09.2010, 12:51
Titel:
|
 |
Wunderbar damit klappt auch das.
Leider tritt schon das nächste Problem auf.
Ich würde gerne alle Einträge der Cell aufsummieren.
Nur endet das in Function 'sum' is not defined for values of class 'cell'.
Damit ist das hier wohl leider ein Paradebeispiel dafür, dass man von Anfang an der kompletten Code posten sollte.
Aber grundsätzlich sollte das Aufsummieren doch möglich sein oder ?
Grüße Noc
|
|
|
|
| Harald |

Forum-Meister
|
 |
Beiträge: 24.502
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 02.09.2010, 13:15
Titel:
|
 |
Hallo,
du hast nun in jeder Zelle einen Vektor stehen. Wie soll die Summe errechnet werden?
Grüße,
Harald
|
|
|
|
| Noc |
Themenstarter

Forum-Newbie
|
 |
Beiträge: 9
|
 |
|
 |
Anmeldedatum: 01.09.10
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 02.09.2010, 13:38
Titel:
|
 |
k_11+k_12+k_21+k_22 ... k_mn
Hoffe das reicht dir als Antwort.
Grüße Noc
|
|
|
|
| Sco |

Forum-Meister
|
 |
Beiträge: 699
|
 |
|
 |
Anmeldedatum: 15.08.10
|
 |
|
 |
Wohnort: Dundee
|
 |
|
 |
Version: 2008a, 2010a
|
 |
|
|
 |
|
Verfasst am: 02.09.2010, 14:17
Titel:
|
 |
Hallo,
fuer die Summe aus ALLEN Zahlen innerhalb der Cell:
Wenn du die Summe in jeder Zelle einzeln moechtest pack es mit in die Schleife:
MFG
Sco
|
|
|
|
| Noc |
Themenstarter

Forum-Newbie
|
 |
Beiträge: 9
|
 |
|
 |
Anmeldedatum: 01.09.10
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 02.09.2010, 19:00
Titel:
|
 |
So endlich wieder ein wenig Zeit gefunden...
Also beide Varianten machen nicht das was ich gerne hätte. Die results(m,n)
bestehen ja pro Eintrag aus einer Matrix deren Größe durch mein definiertes x,y-Gitter bestimmt ist.
Diese Einträge würde ich gerne aufsummieren. Sprich als Ergebnis der Summation sollte einer Matrix der gleichen Dimension herauskommen.
Mit der einen Variante hier ende ich bei einer mxn Matrix mit der anderen mit einem Skalar.
Hoffe ihr versteht jetzt was ich meine.
Grüße Noc
|
|
|
|
| Sco |

Forum-Meister
|
 |
Beiträge: 699
|
 |
|
 |
Anmeldedatum: 15.08.10
|
 |
|
 |
Wohnort: Dundee
|
 |
|
 |
Version: 2008a, 2010a
|
 |
|
|
 |
|
Verfasst am: 02.09.2010, 19:10
Titel:
|
 |
Hallo,
also ich verstehe nicht was du willlst.
Erst schreibst du "Diese Einträge würde ich gerne aufsummieren" --> d.h. du willst in dem Beispiel von oben eine 2x2 Matrix als Ergebnis (das macht mein 2. Beispiel).
Dann schreibst du "Sprich als Ergebnis der Summation sollte einer Matrix der gleichen Dimension herauskommen.", welche gleiche Dimension?
Am besten du erstellt mal eine kleines Beispiel (Matrix) und zeigst daran wie du es gerne haben möchtest bzw. was raus kommen soll.
MFG
Sco
|
|
|
|
| Noc |
Themenstarter

Forum-Newbie
|
 |
Beiträge: 9
|
 |
|
 |
Anmeldedatum: 01.09.10
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 02.09.2010, 19:32
Titel:
|
 |
Die oben zitierte Schleife produziert für jeden Eintrag der Cell eine 10x10 Matrix. Sowas wie
results(1,1)=[Wert bei x=0.1&y=0.1, Wert bei x=0.2&y=0.1 ..... ;Wert bei x=0.1&y=0.2, Wert bei x=0.2&y=0.2 .... , ...]
für die anderen 3 Einträge der Cell jeweils gleich große Matrizen. Diese 4 Matrizen würde ich gerne elementweise aufsummieren
Gruß Noc
|
|
|
|
| Sco |

Forum-Meister
|
 |
Beiträge: 699
|
 |
|
 |
Anmeldedatum: 15.08.10
|
 |
|
 |
Wohnort: Dundee
|
 |
|
 |
Version: 2008a, 2010a
|
 |
|
|
 |
|
Verfasst am: 02.09.2010, 19:53
Titel:
|
 |
Hallo,
ja und genau das macht mein 2. Beispiel!
Im kompletten Code wäre es dann folgendermassen:
Summe ist eine 2x2 Matrix mit jeweils der Summe aller Elemente innerhalb einer Zelle.
MFG
Sco
|
|
|
|
| Noc |
Themenstarter

Forum-Newbie
|
 |
Beiträge: 9
|
 |
|
 |
Anmeldedatum: 01.09.10
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 02.09.2010, 20:14
Titel:
|
 |
Ok ich befürchte ich drücke mich immer noch nicht deutlich genug aus.
Ich will nicht die Elemente innerhalb eines Cell Eintrags summieren.
Sondern die Elemente eines Cell Eintrags mit denen der anderen summiert werden. Wenn meine Cell = [c1 c2;c3 c4] mit den Einträgen
c1=[a11 a12;a21 a22] c2 =[b11 b12;b21 b22]
c3=[d11 d12;d21 d22] c4 =[e11 e12;e21 e22]
ist, sollte die Summe lauten:
Summe = [a11+b11+d11+e11 a12+b12+d12+e12 ; a21+b21+d21+e21 a22+b22+d22+e22 ]
und nicht
Summe = [a11+a12+a21+a22 b11+b12+b21+b22; d11+d12+d21+d22 e11+e12+e21+e22]
Gruß Noc
|
|
|
|
|
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 - 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.
|
|