|
|
|
Verfasst am: 20.12.2011, 19:45
Titel: EVAL & ASSIGNIN
|
 |
Thema geteilt: http://www.gomatlab.de/viewtopic.ph.....975a8fe46b4ef4744181a39af
Hallo zusammen,
| Zitat: |
| Erstelle keine Variablen per EVAL oder ASSIGNIN. Am besten: niemals! |
Das hat mich tiefst enttaeuscht. Ich habe eine Vorlage bekommen, die zur dynamischen Programmierung dienen sollte. Bin Matlabanfaenger und mein code ist:
Könnte bitte jemand mir erklaeren, wozu das ganze dienen sollte.
Vielen Dank im Voraus.
_________________
Es ist laut geworden im Meer.
|
|
|
|
|
|
| Harald |

Forum-Meister
|
 |
Beiträge: 24.502
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 21.12.2011, 09:39
Titel:
|
 |
Hallo,
das sieht mir nach automatisch erzeugtem Code von importdata aus.
Letztlich sorgt der Befehl dafür, dass die Felder der Struktur newData1 im Base Workspace als eigenständige Variablen zur Verfügung stehen. Ich würde aber auf Dauer ohnehin empfehlen, mit Befehlen zu arbeiten, die speziell für den Import von Daten des jeweiligen Formats gedacht sind:
- XLSREAD (für .xls[x]-Dateien)
- TEXTSCAN (für Textdateien)
Grüße,
Harald
P.S.: Wenn du dich an einen Thread "dranhängst", stelle den Status bitte auf "offen".
|
|
|
|
|
Verfasst am: 21.12.2011, 11:06
Titel:
|
 |
Hallo Harald
Danke.Das hatte ich auch verstanden. Ich wollte geanauer verstehen Schritt für Schritt was dieser Code ausführt.Deswegen habe den code hinzugefügt. Weil ich den Code für einen vorhandenen Programm anpassen sollte.
Vielen Dank wieder.
Grüsse
| Beschreibung: |
|
 Download |
| Dateiname: |
importfile_sent.m |
| Dateigröße: |
701 Bytes |
| Heruntergeladen: |
653 mal |
_________________
Es ist laut geworden im Meer.
|
|
|
|
|
Verfasst am: 21.12.2011, 11:19
Titel:
|
 |
Wenn Du oder ein anderer bereit waere dieser mir verstaendlicher zu machen, wuerde mich sehr freuen. Weil ich selber damit nichts anfangen kann.
Danke an alle.
_________________
Es ist laut geworden im Meer.
|
|
|
|
| Harald |

Forum-Meister
|
 |
Beiträge: 24.502
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 21.12.2011, 11:26
Titel:
|
 |
Hallo,
eine kommentierte Version dieses Codes:
Ich finde jedoch nicht, dass dieser Code besonders gut ist. Daher würde ich den Code lieber durch "vernünftigen" Code ersetzen, siehe originale Antwort.
Grüße,
Harald
|
|
|
|
|
Verfasst am: 21.12.2011, 11:32
Titel:
|
 |
Danke sehr
Ich habe den Code von einem mathe Professor bekommen, der sich jahrelang mit Matlab beschaeftigt hat. Hat auch einige Preise bekommen.
Danke wieder für die Erklaerungen. Werde daran arbeiten.
Grüsse aus Madrid
el transeunte extranjero
(Der Durchreisende Auslaender)
_________________
Es ist laut geworden im Meer.
|
|
|
|
| Harald |

Forum-Meister
|
 |
Beiträge: 24.502
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 21.12.2011, 13:07
Titel:
|
 |
|
|
|
|
Verfasst am: 21.12.2011, 13:40
Titel:
|
 |
Okay Harald.
Danke für die ausführlichen Informationen und Links.
Ich warte ein paar Tage. Wenn niemand dazu zu sagen hat oder Fragen stellt, werde ich die Diskussion schliessen.
Grüsse aus Madrid
Frohe Weihnachten.
_________________
Es ist laut geworden im Meer.
|
|
|
|
Gesplittet: 21.12.2011, 16:13 Uhr von Jan S Von Beitrag Dynamische Variable in For schleife?? aus dem Forum Programmierung |
| Jan S |

Moderator
|
 |
Beiträge: 11.057
|
 |
|
 |
Anmeldedatum: 08.07.10
|
 |
|
 |
Wohnort: Heidelberg
|
 |
|
 |
Version: 2009a, 2016b
|
 |
|
|
 |
|
Verfasst am: 21.12.2011, 16:30
Titel: Re: EVAL & ASSIGNIN
|
 |
| |
 |
|
Hallo el transeunte extranjero,
Die von Harald gepostete Liste weist auf die Probleme mit EVAL und ASSIGNIN umfassend hin. Neben der Unübersichtlichkeit, die das Debuggen erschwert, und der Fehleranfälligkeit, bremsen die Befehle Matlab auch sehr aus. Matlab's JIT-Compiler sorgt nämlich für einen sehr effizienten Zugriff auf Variablen innerhalb von Schleifen, sofern die Variablen einen festen Typ haben und zur Compile-Zeit bekannt sind. Wenn sie aber während des Programmlaufs automatisch in einem Unterprogramm erzeugt werden und per ASSIGNIN in die Lookup-Table der lokalen Variablen gesteckt werden, hat die JIT keine Chance den Code zu optimieren.
Die Unterschiede in der Laufzeit können einen Faktor von 100 haben!
Es tut mir leid, wenn Du davon tief enttäuscht bist. Es gibt einfach gute und schlechte Programmier-Methoden. Und Matlab kann "dynamische Programmiermethoden" nicht effizient mit EVAL und ASSIGNIN ausführen. Es ist aber immer möglich, einen Algorithmus als Daten eines statischen Programms zu codieren, statt ein dynamisches Programm dafür zu erzeugen. Eine trennung von Code und Daten hat dabei den Vorteil, dass die Komplexität der Programme deutlich gesenkt werden kann, was wiederum der Debugbarkeit zugute kommt.
Ein Professor kann übrigens ohne Zweifel auch mit ineffizienten Programmiermethoden viele Preise gewinnen. Denn auch ein ineffizientes Programm kann in der Lage sein ein zuvor ungelöstes Problem zu lösen. In der Rohfassung sah Einsteins allgemeine Relativitätstheorie auch grausam aus, aber im Laufe der Zeit konnte er und weitere Physiker den "Code" deutlich vereinfachen und klarere Ausdrücke verwenden. Aber das "Verschönern" der Formeln ist eigentlich nur geschicktes Handwerk, während die eigentliche Idee das geniale war. Und wenn Einstein die Feldgleichungen mit EVAL gelöst hätte, wäre ich immer noch tief fasziniert, hätte aber einen Verbesserungsvorschlag zu machen...
Gruß, Jan
|
|
|
|
|
Verfasst am: 21.12.2011, 17:56
Titel:
|
 |
Hallo Jan,
Danke für die Erklaerungen. Na ja bin in der Welt der Programmierung mit Matlab ein Laie.
Gerne wuerde ich erfahrene Leute wie Sie zu Rate ziehen um mich im Bereich weiter und richtig vertiefen zu können.
Grüsse aus Madris (echt so ausgesprochen von den leuten , die hier leben)
Frohe Weihnachten
el transeunte extranjero
_________________
Es ist laut geworden im Meer.
|
|
|
|
|
Verfasst am: 24.12.2011, 11:26
Titel:
|
 |
Danke sehr. Hiermit aendere ich die Status der Diskussion als "beantwortet".
Frohe Weihnahten
_________________
Es ist laut geworden im Meer.
|
|
|
|
|
|
|
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.
|
|