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

genaueren Mittelwert berechnen

 

Christianonline

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 20.11.2009, 17:05     Titel: genaueren Mittelwert berechnen
  Antworten mit Zitat      
hallo zusammen

ich mächte die daten (siehe anhang) normalisieren, also den flachen teil des graphen als nulllinie haben. (siehe jpg)
bisher habe ich meine daten mit dem folgenden code normalisiert:
Code:

handles.dataset = zscore(handles.dataset) % zscore entspricht (x–mean(x))./std(x)
 


dadurch liegt aber die nulllinie nicht zwangsweise genau auf dem langen flachen teil.
deswegen möchte ich ein fester durchlaufen lassen und jeweils den mittelwert berechnen lassen. dann möchte ich mir anschauen, welcher mittelwert am meisten vorhanden ist und diesen dann benutzen.

meine überlegungen bisher:

Code:

% dataset ist ein vector mit meinen daten, erstmal nur eine spalte, später 3

function normaliseData(dataset, windowsize)

%% calculate mean of 'windowsize' elements
dataMean = filter(ones(1,windowsize)/windowsize,1,dataset(:,1));


%% find most existing mean
minX = round(min(dataMean(:,1)))
maxX = round(max(dataMean(:,1)))

stepSize = round(( maxX - minX )/200)

accuracy = 200;
choosemean = zeros(1,accuracy);

for i = 1:accuracy-1
    findmean = find(minX + stepSize*i < dataMean(:,1) & dataMean(:,1) < minX + stepSize*(i+1));
    choosemean(i) = length(findmean);
end;
plot(choosemean)
[tmp, meanfactor] = max(choosemean)

bestmean = round(minX*1.5 + test*meanfactor)
badmean = round(mean(dataset(:,1)))

 


das läuft auch, aber die lösung ist irgendwie sehr unschön. vielleicht hat ja jemand noch ne idee?

Vielen Dank auf jeden fall schon mal. tolles forum, hat mir schon viel geholfen.

data.mat.zip
 Beschreibung:
das sind die daten. einfach .zip entfernen und in matlab laden

Download
 Dateiname:  data.mat.zip
 Dateigröße:  2.04 KB
 Heruntergeladen:  374 mal
mean.jpg
 Beschreibung:

Download
 Dateiname:  mean.jpg
 Dateigröße:  31.79 KB
 Heruntergeladen:  401 mal


Christianonline

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 20.11.2009, 20:07     Titel:
  Antworten mit Zitat      
OK hab noch ein wenig dran gefeilt und bleibt jetzt so. falls es noch jemanden interessiert:
Code:

windowsize = 30

dataMean = filter(ones(1,windowsize)/windowsize,1,handles.dataset);
handles.dataSmoothed = dataMean;

N = length(dataMean(:,1));

%% find most existing mean
minX = round(min(dataMean(windowsize:N,:)));
maxX = round(max(dataMean(windowsize:N,:)));

lengthofloop = round( maxX - minX );

choosemean = zeros(1,lengthofloop);

for ii = 1:3
    for i = 0:lengthofloop(:,ii)
        findmean = find(minX(ii) + i < dataMean(:,ii) & dataMean(:,ii) < minX(ii) + (i+1));
        choosemean(1+i,ii) = length(findmean);
    end;
    [tmp, add] = max(choosemean(:,ii));
    bestmean(ii) = round(minX(ii) + add);
end;

%% normalise with most existing mean
for i = 1:3
    datasetNorm(:,i) = (handles.dataset(:,i) - bestmean(i))./std(handles.dataset(:,i));
end;
 


kann also geschlossen werden!

grüße
 
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.