Verfasst am: 03.02.2009, 12:30
Titel: Ganz doofe Frage zum Thema was ist x und was y?
Moin zusammen,
mir ist es schon fast etwas peinlich, aber ich sehe im Moment kein Land und brauche Hilfe.
Ich möchte mir eine Funktion darstellen lassen, die ich vorher berechnet habe. Die Funktion lautet
z = b1*x+b2*x*y+b3*x^2+b4
mit
x = (0:1:100)
y = (0:3:300)
Was in der Grafik zu sehen sein sollte ist, dass solange x = 0, kann y sein was immer es will. Das Ergebnis sollte b4 sein (siehe Gleichung). Schaue ich mir die Matrix z an, dann ist die oberste Reihe auch immer b4.
Wenn ich jetzt
surf(x,y,z) eingebe, dann ist aber alles genau umgedreht. In der grafik kann sich x ändern wie es will. Solange y = 0 ist z immer b4. Irgendwie ist da halt was verdreht.
Ich muss
surf(x,y,z') eingeben, damit ich das Ergebnis erhalte was ich möchte.
Daher meine Frage, wenn ich eine Matrix habe, was ist davon x und was y
y?
Ich hoffe ich konnte mich klar genug ausdrücken worum es mir geht und freue mich über Antworten, die die wolken in meinem Gehirn vertreiben.
Danke
Sebastian
Gast
Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
Verfasst am: 03.02.2009, 14:14
Titel:
Lad' doch mal ein Beispiel hoch.
Bei mir funktioniert es wie erwartet.
Ok. Ich dachte mir schon, dass es nicht gut erklärt war.
Hier ein aktuelles Beispiel.
Code:
% Das sind meine gemessenen Paramter mit denen ich ein Regressionsmodell bilde.
X=[00;00;220;330;660;1000;0100;22100;33100;66100;100100;...
0200;22200;33200;66200;100200;0300;22300;33300;66300;...
100300;50200;78300];
Wie man bei "surf" sieht muss ich die Gleichung (z) transponieren, damit es stimmt. Ich habe heute auch ziemlich viel in der Hilfe gelesen, wonach die Matrix
A(m,n) ist.
Und bei Surf ist laut der Hilfe x=1:n und y=1:m.
Wenn das stimmt, dann würde ich mein Problem verstehen. Ich hoffe das war jetzt eindeutiger erklärt.
Danke für die Hilfe
Edit by Bijick: Code-Formatierung ergänzt (und Code etwas gestrafft). Bitte beim nächsten Mal selbst machen (Code-Button mittig über dem Eingabefenster). Danke
Gast
Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
Verfasst am: 03.02.2009, 16:29
Titel:
Weil beta nicht definiert ist, spricht was dagegen so zu plotten:
Code:
b1=0.4;
b2=0.01;
b3=0.001;
b4=0.2;
% x = (0:1:100) % y = (0:3:300) [x,y]=meshgrid(0:1:100,0:3:300);
z = b1*x+b2*x.*y+b3*x.^2+b4;
surf(x,y,z) xlabel('x');
ylabel('y');
zlabel('z');
shading interp;
Dann reich das beta doch mal nach...
Ich bekomme mit meinem Code ein anderes Bild; eines, in dem im Gegensatz zu Deinem Richtig.jpg die Funktion für x=0 auch wirklich b4 ist. (Bezogen auf die Funktion aus dem ersten Post).
Guck Dir nochmal
ich muss mich bei dir bedanken. ich bin jetzt noch auf ein ganz anderes Problem gestoßen. Deine Variante funktioniert. Ich hatte vergessen, den Punkt vor das Multiplikationszeichen zu setzen. Damit hatte ich eine Matrixmultiplikation vorgenommen und keine elementare.
Mit Meshgrip wird auch x und y automatisch auf die richtigen Achsen gesetzt.
In meiner Version war es vertauscht. Dazu habe ich x^2 über x'*x berechnet, was ebenfalls falsch von mir war.
Du hast mir also geholfen gleich mehrere Probleme (von den meisten wußte ich bis eben nicht mal) zu lösen.
Danke schön
Sebastian
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
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.