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.
|
|
|
|