Probability Density Function < Matlab < Mathe-Software < Mathe < Vorhilfe
|
| Status: |
(Frage) beantwortet | | Datum: | 18:09 Mo 10.01.2011 | | Autor: | Leucram |
| Aufgabe | Datengrundlage: 28 Messwerte (Breitenmaße im Meter) in einer 28x1 Matrix
Ziel: Probability Density Function inklusive Messwerte und geplottete Kurve durch Messwerte |
hi,
ich bin leider eher ein Leihe in Matlab, deshalb brauche ich rat.
die 28 Messwerte habe ich nach der Groeße (in m) sortiert, und moechte
a) eine Schleife, die 5 Messwerte zusammenfasst, daraus den mean() und den range() ermittelt, dann 5/range() teilt (=die Density) und die gesamten 28 Daten durchläuft
b) ein Plott, indem die Densitywerte (5/range) am mean-Wert geplottet sind. und noch eine Kurve durch alle Punkte.
PS: ich arbeite auch selber zeitgleich an der Lösung meiner Aufgabenstellung
vielen Dank für die Hilfe schon im Vorraus
sortedWidth sind meine Daten
% 1.Laufvariable l deklarieren
l = 5;
for i = 1:length(sortedWidth);
a = sortedWidth(i:l,1);
[mm] mean_a [/mm] = mean(a);
[mm] range_a [/mm] = range(a);
t = 5 / [mm] range_a;
[/mm]
[mm] plot(mean_a,t)
[/mm]
hold on
xlabel('Width [m]');
ylabel('probability density');
l = l+1;
end
aber es klappt noch nicht ganz mit dem Plot, zudem muss noch:
- auf 1 skaliert bzw normalisiert werden
- Kurve durch die Punkte
|
|
| |
|
Hi,
ich verstehe noch nicht ganz, was du als normieren bezeichnest. Ich hoffe der Quelltext hilft dir ein bisschen weiter.| 1: | % Dummymessdaten
| | 2: | sortedWidth = [12 13 15 16 18 19 20 21 23 25 27 29 34 37 46 5 8 68 77 89 90];
| | 3: |
| | 4: | % Laenge fuer range...
| | 5: | l = 5;
| | 6: | xlabel('Width [m]');
| | 7: | ylabel('probability density');
| | 8: |
| | 9: | hold on;
| | 10: | %Datenmatrix fürs plotten
| | 11: | data=zeros(length(sortedWidth),2)
| | 12: | for i = 1:length(sortedWidth);
| | 13: | ende = i+l;
| | 14: | if ende>length(sortedWidth)
| | 15: | ende = length(sortedWidth) ; % damit man nicht auf daten zugreift, die außerhalb der Messdaten sind
| | 16: | end
| | 17: | a = sortedWidth(i:ende);
| | 18: | mean_a = mean(a);
| | 19: | range_a = range(a);
| | 20: | t = 5 / range_a;
| | 21: | data(i,:)=[mean_a,t];
| | 22: | end
| | 23: | data %Kurvendaten ausgeben
| | 24: | p=plot(data(:,1),data(:,2));
| | 25: | % Messdaten plotten
| | 26: | plot(sortedWidth);
| | 27: | set(p,'Color','red','LineWidth',1);
| | 28: |
| Den gibt es auch noch einmal als Copy-Paste hier http://www.sourcepod.com/lhjmje99-4110
Mit
| 1: |
| | 2: | axis([0 sortedWidth(length(sortedWitdh)) 0 1])
|
Kann man die Achsen strecken und skalieren.
|
|
|
|