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

Plotanzeige

 

KaiS
Forum-Century

Forum-Century


Beiträge: 102
Anmeldedatum: 19.04.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 16.06.2013, 09:03     Titel: Plotanzeige
  Antworten mit Zitat      
Hallo zusammen,

ich möchte zwei einfache Arrays (jeweils für x- und y-Achse) plotten.

Nun ist das so, dass nach dem plot-Befehl, d.h. z.B.

Code:


Das "figure1"-Fenster erscheint, aber mit keiner Achse drin, sondern nur eine grauen Fläche, d.h. ein leeres Figure. (Schaltflächen usw. sind weiterhin vorhanden).

Daraufhin habe ich mal die Y-Werte gecheckt, die ich plotten will und habe festgestellt, dass der erste Wert 1e-322 ist. Kann es sein, dass diese Zahl für Matlab zu klein ist, sodass sie gar nicht mehr geplottet werden kann?

Wenn nein, gibt es noch eine andere Erklärung?

Vielen Dank!

LG
Kai
Private Nachricht senden Benutzer-Profile anzeigen


markuman
Forum-Guru

Forum-Guru


Beiträge: 320
Anmeldedatum: 14.12.12
Wohnort: ---
Version: 2013a/2013b, Octave 3.6.4, 3.7.7
     Beitrag Verfasst am: 16.06.2013, 10:19     Titel: Re: Plotanzeige
  Antworten mit Zitat      
KaiS hat Folgendes geschrieben:

Daraufhin habe ich mal die Y-Werte gecheckt, die ich plotten will und habe festgestellt, dass der erste Wert 1e-322 ist. Kann es sein, dass diese Zahl für Matlab zu klein ist, sodass sie gar nicht mehr geplottet werden kann?


Nein. Matlab skaliert automatisch.
Es kommt auf die anderen Y-Werte an.

Code:

octave:1> x=[1,2]
x =

   1   2

octave:2> y=[1e-322 1e322]
y =

   9.8813e-323           Inf

octave:3> plot(x,y)

%%% Plot ist leer
octave:4> y=[1e-322 1e100]
y =

   9.8813e-323   1.0000e+100

octave:5> plot(x,y)

%% Plot zeigt was an. Damit ist 1e-322 nicht zu klein Wink
 

_________________

DIY OR DIE Cool

entropie=char(floor(94*rand(1, round(100.*rand)) + 32))
https://github.com/markuman
Private Nachricht senden Benutzer-Profile anzeigen
 
KaiS
Themenstarter

Forum-Century

Forum-Century


Beiträge: 102
Anmeldedatum: 19.04.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 16.06.2013, 23:00     Titel:
  Antworten mit Zitat      
Hey,

danke, die anderen Y-Werte sind allesamt 0.. Hättest du dann vllt eine andere Idee, warum der Plot nicht angezeigt werden kann (Matlab gibt ja auch keinen Fehler oder so aus, sondern das Figure-Fenster bleibt einfach nur grau).

Danke!

LG
Kai
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.499
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 16.06.2013, 23:05     Titel:
  Antworten mit Zitat      
Hallo,

ein konkretes Beispiel, das man reproduzieren kann, könnte helfen.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
KaiS
Themenstarter

Forum-Century

Forum-Century


Beiträge: 102
Anmeldedatum: 19.04.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 17.06.2013, 08:58     Titel:
  Antworten mit Zitat      
Ich habe gerade mal probeweise folgendes in Matlab eingegeben:

Code:
y = [1e-322 0 0]
time = [0 1 2]

plot(time,y)


Als Ergebnis kam auch nur ein graues Figure-Fenster. Mein eigentlicher Fall ist eig ähnlich, wobei einfach y nur noch viel mehr Nullen hat, die folgen (und time dementsprechend auch anwächst).
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.499
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 17.06.2013, 09:56     Titel:
  Antworten mit Zitat      
Hallo,

ich konnte das Problem reproduzieren, weiß aber auf Anhieb auch keine Abhilfe.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 17.06.2013, 12:12     Titel:
  Antworten mit Zitat      
Hallo Kai,

Siehe REALMIN:
Zitat:
...the smallest positive normalized floating-point number in IEEE double precision is 2.2251e-308


1e-322 wäre dann also nicht mehr "normalized" sindern "denormalized". Wie die Rendering-Engine damit umgeht ist möglicherwesie nicht eindeutig definiert. Welchen Renderer verwendest Du?

Woher stammt der winzige Wert? Wie wäre es mit:
Code:
y(y < eps) = 0;

Gruß, Jan
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 - 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.