WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

3D-Plot ganz einfach, aber komm nicht drauf

 

gast

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 10.03.2009, 16:26     Titel: 3D-Plot ganz einfach, aber komm nicht drauf
  Antworten mit Zitat      
Hallo zusammen,

will einen 3D-Plot machen, und gebe dazu den unten gezeigten Code ein. Irgendetwas stimmt aber nicht, weil ich nur ein leeres 3-dimensionales Feld dargestellt bekomme... kann jemand mal drübergucken und mir sagen, wo das problem liegt? danke schon mal im Voraus

gruß


Anmerkung: ich programmiere in Scilab. Hier also der Code:

Code:

ri = 0.25;
ra = 0.9;
r = ri:0.01:ra;

uemin = 30;
uemax = 150;
ue = uemin:(uemax-uemin)/(length(r)-1):uemax;

etag = 0.9;
a = 8.3;
mzug = 75.87;
stahllaenge = 1;
stahldichte = 7.85;


jakt = 0.5*%pi*stahldichte*1000*stahllaenge.*(r^4-ri^4);

mmg1 = (a.*ue/r).*(jm+jg);

mj1 = (a.*ue/r)*(jakt ./ (ue^2*etag));

m1 = mmg1 + mj1- mzug;

plot3d(r,ue,m1)


Gast



Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 10.03.2009, 16:30     Titel:
  Antworten mit Zitat      
Um das nachzuvollziehen fehlen die Variablen jm und jg.
 
gast

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 10.03.2009, 16:48     Titel: ergänzung
  Antworten mit Zitat      
hallo,

da hast du recht. wobei die eigentlich nur konstanten sind.

Code:
jg = 0.05;
jm = 0.23;


danke fürs drübergucken
 
Gast



Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 10.03.2009, 17:01     Titel:
  Antworten mit Zitat      
Ok, so funktioniert es in Matlab:
Code:
ri = 0.25;
ra = 0.9;
r = ri:0.01:ra;

uemin = 30;
uemax = 150;
ue = uemin:(uemax-uemin)./(length(r)-1):uemax;

etag = 0.9;
a = 8.3;
mzug = 75.87;
stahllaenge = 1;
stahldichte = 7.85;
jg = 0.05;
jm = 0.23;
jakt = 0.5*pi*stahldichte*1000*stahllaenge.*(r.^4-ri.^4);
mmg1 = (a.*ue./r).*(jm+jg);
mj1 = (a.*ue./r).*(jakt ./ (ue.^2*etag));
m1 = mmg1 + mj1- mzug;
plot3(r,ue,m1)

Die Zeile jakt (mit dem pi) und plot3d (->plot3) musste ich ändern.
Guck mal, ob es läuft. Hing mit elementweisen Operationen zusammen ( die Punkte vor / und * ).
Bild hänge ich an.
Jetzt willst du vermutlich eine flächige Darstellung, oder? In Matlab würde ich dir dann meshgrid ans Herz legen... Vielleicht gibt es entsprechendes auch für Scilab.

bild.png
 Beschreibung:

Download
 Dateiname:  bild.png
 Dateigröße:  4.01 KB
 Heruntergeladen:  760 mal
 
gast

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 10.03.2009, 18:37     Titel: bin ratlos
  Antworten mit Zitat      
krieg es irgendwie nicht auf die reihe, die funktion in 3d und flächig darstellen zu lassen...
nur zur nochmaligen erläuterung: ich will m1 in abhängigkeit von ue und r darstellen lassen, laut meinem chef müsste da eine fläche rauskommen, die sich über der ue-r-fläche spannt...
jemand ne idee?

danke
 
Gast



Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 10.03.2009, 18:48     Titel:
  Antworten mit Zitat      
Scilab 4.1.2 hat die Funktionen meshgrid und ndgrid. Guck dir mal die Beispiele dazu an.
 
Idefix_1024
Forum-Century

Forum-Century


Beiträge: 230
Anmeldedatum: 16.10.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 10.03.2009, 19:34     Titel:
  Antworten mit Zitat      
wie sollte Matlab denn da eine Fläche zeichnen??

was Du hast sieht stark vereinfacht so aus

Code:

a=[1 2 3]; b=[3 3 3]; c=[1 1 1]; plot3(a,b,c)
 


mal ehrlich
ich sehe da auch keine Fläche... das ist und bleibt ein Strich im Raum...

evtl solltest Du mal die Datensammlung überdenken und dann im Forum nach
"3D Plot aus Wertetabelle"
suchen...
Private Nachricht senden Benutzer-Profile anzeigen
 
gast

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 11.03.2009, 08:09     Titel: danke!
  Antworten mit Zitat      
hallo,

hab es jetzt hinbekommen, dank den befehlen "meshgrid" und "mesh".
mit "surf" lässt es sich auch zeichnen.

ich habe lange nach dem befehl "mesh" gesucht, bis ich ihn endlich gefunden hatte. da muss ich sagen, sollte man in der scilab-hilfe nochmal nachbessern und einen verweis in der meshgrid-hilfe auf mesh geben.

danke an alle, die sich das mal angeschaut haben Smile

gruß
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

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 | goMatlab RSS Button RSS

Hosted by:


Copyright © 2007 - 2024 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.