5. Mittelwert, Median, Varianz, Std.Abweichung, IQR berechne ich einfach mit den Matlab-Formeln.
Die y-Achse soll die Anzahl der jeweiligen Werte in den bins Darstellen.
Die x-Achse Intervalle der bins.
Kann man die Anzahl der bins auch vielleicht varrieren? Standard sind ja 10 bins.
Im Endeffekt soll einfach ein richtiges Histogramm der Daten erstellt werden.
Freue mich über jede Hilfestellung!!
vielen Dank für deine Hilfe! Die Matlab-Formeln waren mir aber bereits bekannt
Mir geht es eigentlich darum, die Messwerte sinnvoll in die bins zuzuordnen und diese bins in geeignete Intervalle zu teilen.
Viele Grüße
Anbei ein Auszug aus meinen Messdaten. Es befinden sich jeweils 8 Spalten. Jede Spalte ist eine eigene Datenreihe. D.h. insgesamt sollten 8 verschiedene Histogramme erstellt werden.
Bitte erkläre nun noch, was "sinnvoll" in Deinem Fall heißt. Das hängt ja von der Fragestellung ab. Die Anzahl von 10 Intervallen gefällt Dir nicht, aber möchtest Du mehr oder weniger bekommen?
Die "bins" sind die Intervalle. Man teilt also nicht die "bins in geeignete Intervalle ein".
ich habe mir nun folgendes zusammengestellt.
Das Histogramm soll möglichst normalverteilt sein.
Die "bins in geeignete Intervalle teilen" heisst, dass die min und max Grenzen der bins, sich aus den Messwerten ergeben sollen.
Das Skript gibt mir jedoch an folgender Stelle eine Fehlermeldung:
% y = linspace (a, b, n) % Der Befehl linspace generiert einen Vektor von (einschließlich) a bis b mit insgesamt n Werten, die in diesem Intervall gleichmäßig angeordnet sind.
t = linspace(min(x), max(x), nWerte);
% Berechnen der Normalverteilung (Gaußkurve) % Die Standardabweichung σ beschreibt die Breite der Normalverteilung.
f = (1/sqrt(2*pi*sigma)) .*exp( - ((t - mu).^2)./(2*sigma));
% Skalierungsfaktor
f = f * max(num) * sqrt(2*pi*sigma);
ich habe nun einige Änderungen durchgeführt.
Das Skript läuft nun durch,... es werden aber irgendwie die Balken der Histogramme, sowie die Gaußkurve nicht gezeichnet.
Würde mich freuen, wenn sich das mal jemand angucken könnte. Die Daten sind im Anhang. Nutze die Matlab Version 2008.
Code:
% Einlesen der Daten.
daten = dlmread('messdaten.txt')
% Auf die Spalte 3 von "daten" zugreifen. % Der : steht dabei für "alle Zeilen".
x = daten(:, 3)
% Berechnen von: Standartabweichung, Mittelwert.
sigma = var(x, 1);
mu = mean(x);
IQR = iqr(x);
med = median(x);
maximum = max(x);
minimum = min(x);
% y = linspace (a, b, n) % Der Befehl linspace generiert einen Vektor von (einschließlich) a bis b mit insgesamt n Werten, die in diesem Intervall gleichmäßig angeordnet sind.
t = linspace(min(x), max(x), nWerte);
% Berechnen der Normalverteilung (Gaußkurve) % Die Standardabweichung σ beschreibt die Breite der Normalverteilung.
f = (1/sqrt(2*pi*sigma)) .*exp( - ((t - mu).^2)./(2*sigma));
% Skalierungsfaktor
f = f * max(bincounts) * sqrt(2*pi*sigma);
% Histogramm plotten figure;
hold on;
% bar(t, ind,'histc') bar(t, f, 0.6, 'g', 'EdgeColor', 'g');
plot(t, f, 'b');
hold off;
grid on;
gausstitle = sprintf('Gauss Kurve\n\\mu = %f, \\sigma = %f, IQR = %f, med = %f, min = %f, max = %f', mu, sigma, IQR, med, minimum, maximum);
legend('Histogramm', gausstitle, 'Location', 'BestOutside');
ylabel('Anzahl');
xlabel('Wert');
title('Histogramm der 3. Dimension');
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
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.