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

Erechneten Wert im Plot ausgeben

 

Fabricmann
Forum-Anfänger

Forum-Anfänger


Beiträge: 11
Anmeldedatum: 29.06.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 03.07.2009, 12:06     Titel: Erechneten Wert im Plot ausgeben
  Antworten mit Zitat      
Hallo Leute Very Happy

weiß vielleicht jemand von euch, wie man einen errechneten Wert im plot ausgeben kann Question
Bekomme dies zur Zeit nur hin, wenn ich denn Wert zuvor in mein Programm integriert habe Exclamation
Private Nachricht senden Benutzer-Profile anzeigen


Tusor
Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 71
Anmeldedatum: 02.07.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 03.07.2009, 16:35     Titel:
  Antworten mit Zitat      
Ich habe noch nicht genau verstanden, was du vor hast. Einfach eine Zahl im Plot ausgeben? Das geht mit dem text-Befehl:
Code:

a=10;
x=3;
y=5;
text(x,y,num2str(a));
 

Das Beispiel schreibt dir an die Stelle (3,5) den Wert in a. In diesem Fall 10. Das funktioniert nur, wenn du schon einen Plot mit einer Darstellung offen hast. Ansonsten sieht man es leider nicht.

Viele Grüße

Tusor
Private Nachricht senden Benutzer-Profile anzeigen
 
Fabricmann
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 11
Anmeldedatum: 29.06.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 06.07.2009, 10:19     Titel:
  Antworten mit Zitat      
Danke Smile
Nur mein Problem ist, dass ich mir eine Fläche, wie folgt berechnen und farbig schraffieren lasse :

A1=int(y,x0(3),x0(1))
A1=double(A1)
A2=int(y,x0(2),x0(3))
A2=double(A2)
A3=int(y,x0(2),x0(1))
A3=double(A3)
for m=x0(3):0.1:x0(2); x1=[m m]; y1=[0 subs(y,m)]; plot(x1,y1,'r'),end
etc.

Jetzt möchte ich noch, dass der berechnete Flächeninhalt im Plot (z.B in der schraffierten Fläche) ausgegeben wird Question .

Hoffe ihr könnt mir weiterhelfen.

Lg Fabricmann Very Happy
Private Nachricht senden Benutzer-Profile anzeigen
 
Tusor
Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 71
Anmeldedatum: 02.07.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 06.07.2009, 17:33     Titel:
  Antworten mit Zitat      
Leider kenne ich deine Funktion "y" nicht. Wäre toll, wenn du ein vollständiges Minimalbeispiel posten würdest, was soweit funktioniert, wie du bist.
Aber im Groben: Es sollte doch jetzt kein Problem sein, in Abhängigkeit von deiner Funktion "y" die Koordinaten eines Punktes zu berechnen, der in deiner Fläche liegt, oder? Und dann musst du einfach die drei Werte aus meinem Beispiel entsprechend wählen. x und y sind die Koordinaten des Punktes und das andere ist halt der Flächeninhalt deiner Fläche, der dargestellt werden soll.

Viele Grüße

Tusor
Private Nachricht senden Benutzer-Profile anzeigen
 
Fabricmann
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 11
Anmeldedatum: 29.06.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 06.07.2009, 18:30     Titel:
  Antworten mit Zitat      
Mit numstr hab ich auch schon gespielt Very Happy
Hat bis jetzt aber irgendwie immer noch nicht ganz so hingehauen Sad
Wäre toll,wenn du mir weiterhelfen könntest.

Code:
syms x; y=-10*X^4-46x^3+206x^2+491x-398
syms
ezplot(y)
ezplot(y,[-8:6],3)
grid on
hold on  
x0=solve(y,x)  
x0=real(double(x0))  
plot(x0(1),0,'o')  
plot(x0,0,'or')
subs(y,2)
x1=2
plot(x0,0,'r*')
plot(x1,subs(y,x1),'b*')
ys=diff(y)
yint=int(y)
figure(2)
hold on
grid on
ezplot(ys)
xm=solve(ys)
xm=double(xm)
plot(xm,0,'b*')
ym=subs(y,xm)
plot(xm,ym,'bo')
x0
A1=int(y,x0(2),x0(3))
A1=double(A1)
A2=int(y,x0(3),x0(1))
A2=double(A2)
A3=int(y,x0(2),x0(1))
A3=double(A3)
for m=x0(3):0.1:x0(2); x1=[m m]; y1=[0 subs(y,m)]; plot(x1,y1,'r'),end
for m=x0(4):0.1:x0(3); x1=[m m]; y1=[0 subs(y,m)]; plot(x1,y1,'g'),end for m=x0(2):0.1:x0(1); x1=[m m]; y1=[0 subs(y,m)]; plot(x1,y1,'g'),end


edit by steve: Bitte die Code-Umgebung verwenden. Danke!
Private Nachricht senden Benutzer-Profile anzeigen
 
Tusor
Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 71
Anmeldedatum: 02.07.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 07.07.2009, 18:35     Titel:
  Antworten mit Zitat      
Hallo,
ich zerpflücke gerade dein Programm.
Was bezweckst du mit dieser Zeile:
Code:
? Das double verstehe ich ja noch. Aber real macht doch keinen Sinn, oder? Denn eine komplexe Nullstelle lässt sich im Allgemeinen sehr schwer darstellen. Und die Nullstellen hier sind doch alle reell. Also kann das "real" doch entfallen. OK, es kann natürlich vorkommen, dass eine Lösung durch die Numerik einen sehr kleinen Imaginärteil bekommt. Da wäre Runden für mich aber die sauberere Lösung. Das ist aber Geschmackssache.
Was mir aber noch aufgefallen ist: Du musst bei deinen Darstellungen immer wieder in die richtige Grafik schalten, denn sonst werden dir zum Beispiel deine Extremwerte in der Ableitung deiner ursprünglichen Funktion dargestellt.
Auch sonst scheint das Programm nicht das zu machen, was es soll....oder besser gesagt: Es rechnet nicht das aus, was ich erwartet hätte. Das sollte nochmal geprüft werden.
Zum Anzeigen der Flächeninhalte der zwei rechten Flächen (A1 und A3) sollte das hier funktionieren:
Code:

text((x0(1)+x0(2))/2,...
ym(1)/2,num2str(A3),...
'HorizontalAlignment','Center',...
'BackgroundColor',[1 1 1]);
text((x0(2)+x0(3))/2,...
ym(3)/2,num2str(A1),...
'HorizontalAlignment','Center',...
'BackgroundColor',[1 1 1]);
 

Je nach Darstellung kann es aber vorkommen, dass die eigentliche Funktion etwas überdeckt wird. Da hilft es evtl. die Koordinaten etwas anders zu berechnen.

Viele Grüße

Tusor
Private Nachricht senden Benutzer-Profile anzeigen
 
Fabricmann
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 11
Anmeldedatum: 29.06.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 08.07.2009, 10:30     Titel:
  Antworten mit Zitat      
Danke Tusor Very Happy ,

jetzt seh ich endlich wo mein Fehler gewesen ist.
Bin die ganze Zeit nah dran gewesen, hatte aber leider kein Beispiel gehabt, an welchem ich mich hätte orientieren können.
Kann verstehen, dass dir mein Programm einwenig komisch vorkommt, aber die Geschichte mit dem

x0=real(double(x0))

zum Beispiel, ist in den Ansätzen vorhanden gewesen, welche mir zur Verfügung gestanden sind und an welche ich mein Programm orientieren sollte.
Aber, wenn du Verbesserungsvorschläge diesbezüglich hättest, wäre ich dir sehr dankbar, da ich leider noch nicht sehr viel Erfahrung in der Programmierung mit Matlab habe, es aber sehr gerne lernen würde.
Ich wäre dir sehr dankbar, wenn du mir auch bei denn nächsten Aufgaben unter die Arme greifen würdest.


Liebe Grüße,

Fabricmann
Private Nachricht senden Benutzer-Profile anzeigen
 
Fabricmann
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 11
Anmeldedatum: 29.06.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 08.07.2009, 13:45     Titel:
  Antworten mit Zitat      
Hallo Tusor Smile ,

ich hab mir eben deinen Programmabschnitt mal genauer angesehen und einwenig mit ihm gespielt Wink

Code:

text((x0(1)+x0(2))/2,...
ym(2)/1,num2str(A3),...
'HorizontalAlignment','Center',...
'BackgroundColor',[1 1 1]);
text((x0(3)+x0(1))/2,...
ym(3)/1,num2str(A2),...
'HorizontalAlignment','Center',...
'BackgroundColor',[1 1 1]);
text((x0(2)+x0(3))/2,...
ym(2)/1,num2str(A1),...
'HorizontalAlignment','Center',...
'BackgroundColor',[1 1 1]);


Hab allerdings festgestellt, dass sich der Wert des Flächeninhaltes A1, sich nicht über A1 darstellen lässt.
Hast du hierzu vllt. eine Idee Question
Auch wollte ich dich fragen, ob es vllt. möglich wäre, dass letzte Ausgabe in seiner Größe zu verändern, so dass die Darstellung von A1 einwenig mehr in die Mitte gerückt werden würde ( dies würde vllt. auch mein vorhergehendes Problem, mit der Darstellung des Wertes von A1 beseitigen Question )
Danke schonmal Smile

Liebe Grüße,

Fabricmann

ps.: Ich weiß, es sind sehr viele Fragen auf einmal Laughing
Private Nachricht senden Benutzer-Profile anzeigen
 
Tusor
Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 71
Anmeldedatum: 02.07.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 08.07.2009, 17:09     Titel:
  Antworten mit Zitat      
Weißt du, was du in A1 berechnest? Das ist nämlich nicht die linke Teilfläche, sondern die beiden rechten Teilflächen mit ihrem eigentlichen Vorzeichen (Flächen unterhalb der x-Achse zählen negativ).
Ohne dir zu nahe treten zu wollen, aber rechne die ganzen Sachen lieber erstmal per Hand aus. Das ist ja bei einem Polynom nicht ganz so schwer. Und überprüfe daran, ob dein Programm wirklich das macht, was es soll. Und dann kommst du auch dahinter, was du wo darstellen muss. Und ansonsten empfehle ich dir dringlichst einfach mal die Hilfe von MatLab zu lesen. Da findet man sehr viel.
Private Nachricht senden Benutzer-Profile anzeigen
 
Fabricmann
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 11
Anmeldedatum: 29.06.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 08.07.2009, 17:37     Titel:
  Antworten mit Zitat      
Danke, werd ich dann wohl mal machen Smile
Nur, wenn man alles mit der Helpoption von Matlab lösen könnte,
dann bräuchte man wohl auch dieses Forum nicht Wink Wink

ps:wohlte dir mit meiner Antwort auf keinen Fall zu nahe treten Smile
hab nur ein paar hilfreiche Tipps gesucht, und auf keinen Fall einen Dummen, der mir alles berechnet Smile
Private Nachricht senden Benutzer-Profile anzeigen
 
steve
Ehrenmitglied

Ehrenmitglied



Beiträge: 2.022
Anmeldedatum: 03.09.07
Wohnort: Wien
Version: R2023b
     Beitrag Verfasst am: 08.07.2009, 17:45     Titel:
  Antworten mit Zitat      
Fabricmann hat Folgendes geschrieben:
Nur, wenn man alles mit der Helpoption von Matlab lösen könnte,

Man muss nur wissen wonach man suchen soll, dann kann man vieles damit lösen Wink

Fabricmann hat Folgendes geschrieben:
dann bräuchte man wohl auch dieses Forum nicht Wink Wink

Das soll auch eher dazu dienen, Hinweise und Lösungsvorschläge zu geben. Deshalb kommt hier auch häufig nur ein Link oder ein Satz wonach man in der Hilfe mal suchen soll Wink

Fabricmann hat Folgendes geschrieben:
[...]der mir alles berechnet

In diesem Fall hätte es auch in "Programmieraufträge" gehört Wink
_________________

>> I told me to.

____________________________________
Matlab Cheat Sheet
goMatlab-Knigge - dran gehalten?!
Schon in den FAQ gesucht?
Ist vielleicht bei den Skripten oder den Tutorials was für dich dabei?
Private Nachricht senden Benutzer-Profile anzeigen
 
Tusor
Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 71
Anmeldedatum: 02.07.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 08.07.2009, 18:10     Titel:
  Antworten mit Zitat      
Fabricmann hat Folgendes geschrieben:
Danke, werd ich dann wohl mal machen Smile
Nur, wenn man alles mit der Helpoption von Matlab lösen könnte,
dann bräuchte man wohl auch dieses Forum nicht Wink Wink

ps:wohlte dir mit meiner Antwort auf keinen Fall zu nahe treten Smile
hab nur ein paar hilfreiche Tipps gesucht, und auf keinen Fall einen Dummen, der mir alles berechnet Smile


Du bist mir nicht zu nahe getreten. Ich bin nur der Meinung, dass man Sachen, die man sich selber erarbeitet hat besser versteht, als wenn man nur einfach einen Befehl hernimmt, den man vorgesetzt bekommt. Und genau das habe ich bei dir befürchtet. Ich kämpfe auch hin und wieder mit der Hilfe. Vor allem, wenn man nicht weiß, wonach man suchen muss. Aber das weißt du ja nun Wink
Private Nachricht senden Benutzer-Profile anzeigen
 
Fabricmann
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 11
Anmeldedatum: 29.06.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 09.07.2009, 09:28     Titel:
  Antworten mit Zitat      
Dann ist ja alles gut Very Happy
Private Nachricht senden Benutzer-Profile anzeigen
 
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.