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

Wert von plot (hist) auslesen an bestimmter stelle

 

Paedda7295
Forum-Anfänger

Forum-Anfänger


Beiträge: 25
Anmeldedatum: 30.01.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 19.02.2012, 16:05     Titel: Wert von plot (hist) auslesen an bestimmter stelle
  Antworten mit Zitat      
Hallo zusammen,


ich habe ein Problem, vielleicht ist es auch einfach zu leicht, dass ich nicht drauf komme Very Happy


Also folgendes: ich habe von einer gewissen datenmenge eine Verteilung über ein hist erstellt:

achse = 0:0.01:1
n = hist(Data1_Q,achse)

Die Werte liegen alle zwischen 0 und 1, deshalb recht das bei der Achse

So nun habe ich das geplottet und dann meinen median und 2 quantile berechnet, die will ich nun in die grafik einfügen, das ist auch kein problem, allerdings ergibt sich nun eins:


Ich würde gerne den Wert an dem jeweiligen X-Wert von MEAN und der quantile ausgeben lassen.

Also nochmal zusammen fassend:
Wie kriege ich einen Wert eines Graphen bei einem bestimmten X-Wert?
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: 19.02.2012, 16:43     Titel:
  Antworten mit Zitat      
Hallo,

wenn der x-Wert in der Variable achse vorkommt, brauchst du ja nur die entsprechende Komponenten von n auslesen.

Und wenn nicht, dann kannst du interpolieren (INTERP1).

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

Forum-Anfänger

Forum-Anfänger


Beiträge: 25
Anmeldedatum: 30.01.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 27.02.2012, 23:45     Titel:
  Antworten mit Zitat      
aber irgendwie bekomme ich den wert da einfach nicht ausgelesen, ist das jetzt einfach zu kompliziert von mir gedacht? wie würdest du den wert da "einfach auslesen"? bin halt ein richtiger noob mit dem programm Wink
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: 28.02.2012, 20:12     Titel:
  Antworten mit Zitat      
Hallo,

Beispiel:
dich interessiert der y-Wert zu x = 0.2.
0.2 ist der 21. Wert in Variable achse, du brauchst also y(21).

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

Forum-Anfänger

Forum-Anfänger


Beiträge: 25
Anmeldedatum: 30.01.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 28.03.2012, 14:50     Titel:
  Antworten mit Zitat      
tut mir leid, ich kriegs einfach nicht gebacken...

also ich müsste dann ja erstmal rausfinden, wie ich den wert, den ich bestimmt habe (bleiben wir mal bei den 0,2) auf meine

Code:
achse = 0:0.01:1;


umrechne, also welcher wert das dann ist und dann müsste ich ja irgendwie an den wert von dieser stelle kommen.... das ganze funktioniert irgendwie rein garnicht.... ich weiss einfach nicht welcge funktion ich da nehmen kann....


bisher sieht das ganze so aus:

Code:
n = hist(A.Data1_Q,achse);
    MEA = mean(A.Data1_Q);
    MED = median(A.Data1_Q);
    rechts = quantile(A.Data1_Q,0.95);
    links = quantile(A.Data1_Q,0.05);
    quantilwertlinks = -->y(links)<--;
    quantilwertrechts = -->(rechts)<--;
    MAX = max(n);



die beiden markierten werte bekomme ich einfach nicht raus, ich verzweifle^^
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: 28.03.2012, 15:10     Titel:
  Antworten mit Zitat      
Hallo,

generell etwa so:
Code:
ylinks = y(x == links);


Dazu muss der Wert links auch genau so in x vorkommen. Falls nicht, hilft z.B. so etwas:
Code:
[naechster, idx] = min(abs(x-links));
ylinks = y(idx);


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

Forum-Anfänger

Forum-Anfänger


Beiträge: 25
Anmeldedatum: 30.01.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 28.03.2012, 15:21     Titel:
  Antworten mit Zitat      
ok, ich habe das jetzt einfach mal so ausprobiert, da ich ehrlich gesagt nicht genau verstehe was da passiert Very Happy

aber es kommt folgende fehlermeldung:

Undefined function or variable 'x'.

Error in figurerstellungordnerweiseTEST23 (line 40)
[naechster, idx] = min(abs(x-links));
Private Nachricht senden Benutzer-Profile anzeigen
 
Paedda7295
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 25
Anmeldedatum: 30.01.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 28.03.2012, 17:12     Titel:
  Antworten mit Zitat      
ich bekomme es immernoch nicht hin, warum ist das denn so kompliziert?^^
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: 28.03.2012, 18:01     Titel:
  Antworten mit Zitat      
Hallo,

meines Erachtens ist das alles andere als kompliziert: wenn du x nicht definiert hast, kennt MATLAB x logischerweise auch nicht.

Ich bin von x- und y-Werten ausgegangen, weil das für mich anschaulicher ist - und ich dachte, dass es für dich kein Problem sein würde, das zu übertragen.

Also: du musst statt x und y jeweils achse, A.Data1_Q oder was auch immer verwenden.

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

Forum-Anfänger

Forum-Anfänger


Beiträge: 25
Anmeldedatum: 30.01.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 29.03.2012, 12:56     Titel:
  Antworten mit Zitat      
ok ich habe das ganze jetzt mal mit einer while schleife probiert, allerdings tun sich da mal wieder probleme auf^^


bisher habe ich das ganze so probiert:

Code:
   rechts = quantile(A.Data1_Q,0.95); % erstellen der quantile
    links = quantile(A.Data1_Q,0.05); % "
    linksposition = 1; % erstellen der variablen, die nacher die stelle des vektors 'achse' angeben soll
    rechtsposition = 1; % "
   
    linksrund = roundn(links,-2); % runden der werte auf 2. nachkommastelle für die schleife
    rechtsrund = roundn(rechts,-2); % "
    l = 0;
    m = 1;
     while (l <= linksrund)
        l = achse(m);
        linksposition = m;
        if l == linksrund
           break;
       
        else m = m + 1;
        end
       
    end


[...]



quantilwertlinks = achse(linksposition);
    quantilwertrechts = achse(rechtsposition);




ja das tut es aber irgendwie nicht... kann es sein, dass matlab veränderte werte während einer schleife nicht nach abschluss der schleife speichert? da kann ich mich von java noch ein bisschen dran erinnern, dass es da immer ein problem gab, das konnte man damals mit zb return lösen...

oder hab ich einfach nur einen dummen fehler gemacht?
Private Nachricht senden Benutzer-Profile anzeigen
 
Paedda7295
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 25
Anmeldedatum: 30.01.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 29.03.2012, 14:26     Titel:
  Antworten mit Zitat      
ich habs geschafft^^ schleife und achsen angepasst, falls jemand ein ähnliches problem hat, hier meine lösung:


Code:
l = 0;
    m = 1;
    while (l < links)
        l = achse(m);
        LINKS = m;
       
       
        m = m + 1;
       
       
    end


[...]


quantilwertlinks = n(LINKS);


[...]


stem(links,quantilwertlinks,'Marker','none','DisplayName','0,05-Quantil','Color',[0 0 0]); %eintragen des linken quantils
 
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.