vectorize - mit Variabler < Matlab < Mathe-Software < Mathe < Vorhilfe
|
Ich habe diese Frage auch in folgenden Foren auf anderen Internetseiten gestellt: http://www.gomatlab.de/viewtopic,p,78613.html#78613
leider ohne antwort...
Hallo,
ich versuche gerade einen einfacheren Plot.
Ich möchte dabei aber das gesamte Matlab Script durchlaufen lassen undzwischendurch nicht eingaben neu in die commandozeile kopieren müssen.
mein unschönes Vorgehen:
syms x
f = sub(...); % hier muss ich werte in die gleichung einfügen
x = linspace(...);
dann lasse ich mir f anzeigen, setze an die nötigen stelle "." für komponentenweise operation und speicher das ergebnis neu
g = ...(siehe text)
plot(x,g)
____
was ich lieber hätte:
syms x;
f = sub(...);
x = linspace(...);
g = vectorize(f);
plot(x,g)
das funktioniert nicht, wenn ich mir g anzeigen lasse, kommt zwar ein ausdruck, auch mit "." an der richtigen stelle, aber matlab greift nicht auf x zu und erstellt keinen bereich, den ich über x plotten kann.
wenn ich g ausgeben lassen, das ausgegebene wieder ausführe (per copy and paste) funktioniert alles prima.
wie kann ich das problem lösen?
vielen dank!
|
|
|
|
Status: |
(Antwort) fertig | Datum: | 18:11 Mo 07.11.2011 | Autor: | Gilbo |
Hallo,
ich weiß nicht, ob ich deine Frage, bzw. dein Problem richtig verstehe, aber ich glaube,
dass du versuchst, eine codezeile auszuführen, deren inhalt erst im laufe des Programmablaufs erzeugt wird.
Schau dir mal die Hilfefunktionen an zu eval( ) an.
Hiermit kannst du matlab einen string übergeben, der als Befehl interpretiert wird.
Diesen String kannst du beliebig während des Programmablaufs erzeugen und verändern.
Falls dir das nicht weiterhilft, gib uns mehr Informationen.
Musst du beispielsweise symbolisch rechnen, welche Werte müssen in welche Gleichung.
Gruß Gilbo
|
|
|
|