|
Tyraphis |

Forum-Anfänger
|
 |
Beiträge: 10
|
 |
|
 |
Anmeldedatum: 19.09.16
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 21.11.2016, 10:53
Titel: for-Schleife
|
 |
Hallo,
ich benötige eine for schleife die mir bei jedem Durchgang einen neuen Block hinzufügt, siehe Code. Dabei wird jedes mal eine Spalte aus einer MxN Matrix hinzugefügt. Momentan habe ich die Schritte einzeln programmiert. Da die Schleife aber mehrmals durchgelaufen werden soll, wird das ganze schnell unübersichtlich. Hoffe ihr könnt mir helfen.
Gruß,
Alex
|
|
|
|
|
Jan S |

Moderator
|
 |
Beiträge: 11.057
|
 |
|
 |
Anmeldedatum: 08.07.10
|
 |
|
 |
Wohnort: Heidelberg
|
 |
|
 |
Version: 2009a, 2016b
|
 |
|
|
 |
|
Verfasst am: 21.11.2016, 11:39
Titel: Re: for-Schleife
|
 |
Hallo Tyraphis,
Zitat: |
ich benötige eine for schleife die mir bei jedem Durchgang einen neuen Block hinzufügt, siehe Code. |
Es ist aus dem Code nicht ersichtlich, was "Block hinzufügen" bedeutet.
Zitat: |
Dabei wird jedes mal eine Spalte aus einer MxN Matrix hinzugefügt. |
Das ist auch nicht erkennbar. Bisher wird in jeder Schleife der Wert von "flamez" immer wieder überschrieben. Ansonsten geschieht nichts.
Bitte erkläre nochmal genauer, was der Code tun soll.
Gruß, Jan
|
|
|
Tyraphis |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 10
|
 |
|
 |
Anmeldedatum: 19.09.16
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 21.11.2016, 12:22
Titel:
|
 |
Hallo Jan,
als Block meine ich die innere for i=1:12 Schleife.
bei j=1 1x bei j=2 2x usw.
Im ersten Durchlauf j=1 werden die Werte aus der ersten Spalte in Flamez geschrieben.
Im zweiten Durchlauf j=2 werden die Werte der ersten Spalte in Flamez geschrieben und anschließend die Werte der zweiten Spalte. usw.
|
|
|
Jan S |

Moderator
|
 |
Beiträge: 11.057
|
 |
|
 |
Anmeldedatum: 08.07.10
|
 |
|
 |
Wohnort: Heidelberg
|
 |
|
 |
Version: 2009a, 2016b
|
 |
|
|
 |
|
Verfasst am: 21.11.2016, 13:02
Titel:
|
 |
Hallo Tyraphis,
Du möchtest also ein Programm schreiben, das ein Programm schreibt?
Zitat: |
Im ersten Durchlauf j=1 werden die Werte aus der ersten Spalte in Flamez geschrieben. |
Nein. Der Wert von Flamez wird in jeder Iteration zunächst mit dem Inhalt von "flame" überschrieben und dann mit einem Element als String. Das ist nicht sinnvoll und deshalb verstehe ich nicht, welches Ziel der Code hat.
Das erzeugt das gleiche wie:
Wozu dienen dann die Schleifen?
Was ist der Zweck von "for j=3"? "j=3" würde es auch tun, oder?
Ich werde also aus dem Code nicht schlau. Darum ist es schwer eine Veränderung vorzuschlagen.
Vielleicht versuchst Du es mal andersherum: Was sind Deine Inputs und welche Outputs möchtest Du bekommen?
Gruß, Jan
|
|
|
Tyraphis |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 10
|
 |
|
 |
Anmeldedatum: 19.09.16
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 21.11.2016, 14:07
Titel:
|
 |
|
 |
|
Jan S hat Folgendes geschrieben: |
Du möchtest also ein Programm schreiben, das ein Programm schreibt? |
Ja der Code soll einen Ansyscode erzeugen.
Zitat: |
Nein. Der Wert von Flamez wird in jeder Iteration zunächst mit dem Inhalt von "flame" überschrieben und dann mit einem Element als String. Das ist nicht sinnvoll und deshalb verstehe ich nicht, welches Ziel der Code hat.
|
Er schreibt jede Zelle von 1:12 in flamez.
flamez(1:12,1)
Den Stringbefehl brauche ich weil Ansys leider mit dem Integerwert nichts anfangen kann. Nach jeder Iteration wird der Wert als Ansysvariable gespeichert.
Das erzeugt das gleiche wie:
Metalini brauche ich für eine Zuweisung und flamez wird danach in eine Ansys Variable überschrieben.
Zitat: |
Wozu dienen dann die Schleifen?
Was ist der Zweck von "for j=3"? "j=3" würde es auch tun, oder? |
Ja das stimmt, die sind ein überbleibsel vom Versuch das ganze direkt als äußere Schleife zu programmieren.
Habe mal einen Excelauszug angehängt. Hoffe es wird dadurch verständlich was ich bezwecken will.
Beschreibung: |
|
 Download |
Dateiname: |
Unbenannt.png |
Dateigröße: |
21.24 KB |
Heruntergeladen: |
344 mal |
|
|
|
Jan S |

Moderator
|
 |
Beiträge: 11.057
|
 |
|
 |
Anmeldedatum: 08.07.10
|
 |
|
 |
Wohnort: Heidelberg
|
 |
|
 |
Version: 2009a, 2016b
|
 |
|
|
 |
|
Verfasst am: 21.11.2016, 16:22
Titel:
|
 |
Hallo Tyraphis,
Ich kenne "Ansyscode" nicht. Der gepostete Code sah nach Matlab aus.
Zitat: |
Er schreibt jede Zelle von 1:12 in flamez. |
Ja, das stimmt schon. Aber der Code überschreibt flamez danach sofort wieder. Am Schluss ist "flamez" also ein Skalar. Ist das beabsichtigt?
?
Zitat: |
Nach jeder Iteration wird der Wert als Ansysvariable gespeichert. |
Und wird das dann auch irgendwo gespeichert?
Und wozu dient:
wenn es gleich in der nächsten Zeile wieder überschrieben wird:
end
Ich verstehe die Bedeutung des Excel-Screenshots nicht.
Geht es darum sinnvollen Matlab-Code zu erstellen oder ist das Ziel das Erzeugen eines Text-Files, das von einem ganz anderen Interpreter mit mir unbekannter Syntax verarbeitet wird?
Verwirrt, Jan
|
|
|
Tyraphis |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 10
|
 |
|
 |
Anmeldedatum: 19.09.16
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 21.11.2016, 17:12
Titel:
|
 |
Zitat: |
Ich kenne "Ansyscode" nicht. Der gepostete Code sah nach Matlab aus. |
Ja es handelt sich um einen Matlabcode. Dieser wird compiliert und erzeugt dann den Code für Ansys.
Zitat: |
Ja, das stimmt schon. Aber der Code überschreibt flamez danach sofort wieder. Am Schluss ist "flamez" also ein Skalar. Ist das beabsichtigt? |
Ja, muss so sein wegen Ansys. Hätte es gerne mit kompletten Spalten gemacht aber das funktioniert unter Ansys leider nicht.
Mir geht es darum ob es möglich ist eine Schleife zu schreiben die bei erneutem durchlaufen die innere Schleife selbst "vermehrt".
in Etwa so:
für j=1 --> x
j=2 --> x und x-1
j=3 --> x , x-1 und x-2
|
|
|
Jan S |

Moderator
|
 |
Beiträge: 11.057
|
 |
|
 |
Anmeldedatum: 08.07.10
|
 |
|
 |
Wohnort: Heidelberg
|
 |
|
 |
Version: 2009a, 2016b
|
 |
|
|
 |
|
Verfasst am: 21.11.2016, 20:48
Titel:
|
 |
Hallo Tyraphis
Zitat: |
Ja es handelt sich um einen Matlabcode. Dieser wird compiliert und erzeugt dann den Code für Ansys. |
Bitte äußere Dich mal dazu, dass die Zeilen:
so überflüssig aussehen. Ich kann mir nicht vorstellen, dass dies in irgendeiner Programmiersprache etwas Sinnvolles macht. Hast Du meinen Einwand zumindest wahrgenommen und kannst ihn irgendwie entkräften?
Zitat: |
Mir geht es darum ob es möglich ist eine Schleife zu schreiben die bei erneutem durchlaufen die innere Schleife selbst "vermehrt". |
Du kannst doch die for j-Schleife einfach nach innen ziehen, oder? Dann wird dieser Block mehrfach ausgeführt.
Vielleicht müsste man dann noch etwas mit dem j-Index anpassen.
Das ist allerdings wildes Raten von mir! Ich verstehe nicht, was der Code tun soll.
Gruß, Jan
|
|
|
|
|
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.
|
|