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

Mittelwert bilden

 

Logez
Forum-Newbie

Forum-Newbie


Beiträge: 6
Anmeldedatum: 22.02.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 22.02.2011, 12:23     Titel: Mittelwert bilden
  Antworten mit Zitat      
Hallo,
ich bin noch Matlab Neuling! Hoffe mir kann hier jemand helfen. Ich habe folgendes Problem: ich habe ca 50.000 Werten und will für je 15 Werte den Mittelwert bilden und diese dann in einer MAtrix (Spaltenvektor) ablegen. Bislang habe ich bereits folgends probiert, das hat aber nicht so geklappt...

Code:

mittel = load('wetterdaten1.mat', 'Windgeschwindigkeit_mittel');
u=mittel.Windgeschwindigkeit_mittel;
for i=1:15:length(u)
b=i+14;
tmp1 = mittel.Windgeschwindigkeit_mittel(i:b,1);
tmp = mean(tmp1);
j=0;
j=1+j;
wert[j,1]=tmp;
end
 


Danke!
Private Nachricht senden Benutzer-Profile anzeigen


Harald
Forum-Meister

Forum-Meister


Beiträge: 24.501
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 22.02.2011, 13:09     Titel:
  Antworten mit Zitat      
Hallo,

bitte immer dazu schreiben, was warum nicht klappt.
Gibt es Fehlermeldungen? Welche?

Grundsätzlich kann man das auch ohne for-Schleife machen, z.B. von 1000 zufälligen Werten über jeweils 10 mitteln:
Code:
s = rand(1000,1);
mean10 = mean(reshape(s,10,[]));

Allerdings ist darauf zu achten, dass hier zunächst die Gesamtanzahl der Werte durch die für einen Mittelwert zu verwendenden teilbar sein muss. Ansonsten muss man noch ein wenig tricksen.

Grüße,
Harald
_________________

1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
Private Nachricht senden Benutzer-Profile anzeigen
 
Logez
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 6
Anmeldedatum: 22.02.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 22.02.2011, 16:33     Titel:
  Antworten mit Zitat      
Hey Harald,
vielen Dank, damit habe ich das hinbekommen!
Noch ne andere Frage: ich will nun auf der x-Achse ne fortlaufende Datumsanzeige. In meinem Fall soll sie am 1.Januar 00:00 beginnen und dann 15-minütig voranschreiten(nächster Wert dann also 1.Januar 00:15 etc). Angezeigt werden soll idealerweise nur der Tag für je vier Werte. Habe da schon bissl mit datetick rumprobiert, aber dabei ist nichts sinnvolles herausgekommen. Gibt das da Ideen oder Ansätze?
Grüße Hauke
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.501
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 22.02.2011, 16:44     Titel:
  Antworten mit Zitat      
Hallo,

hier ein Beispiel, das einen Datumsvektor für 5 Tage im gewünschten Intervall 15-Min-Intervall generiert:
Code:
x = datenum('01/01/2011');
N = 5;
xvec = x:1/(24*4):x + N;


xvec auf die x-Achse plotten, datetick, fertig.

Grüße,
Harald

P.S.: Bitte immer dazu sagen, was du ausprobiert hast und wieso du damit nicht zufrieden bist Wink
_________________

1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
Private Nachricht senden Benutzer-Profile anzeigen
 
Logez
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 6
Anmeldedatum: 22.02.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 22.02.2011, 21:31     Titel:
  Antworten mit Zitat      
Danke Harald!
Das sieht gut aus, probiere ich gleich mal aus.
Grüße
Private Nachricht senden Benutzer-Profile anzeigen
 
Logez
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 6
Anmeldedatum: 22.02.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 23.02.2011, 10:31     Titel:
  Antworten mit Zitat      
so ganz bekomme ich das ganze noch nicht hin...
weiß nicht wie ich da weiter vorgehen muss.
wie plotte ich denn xvec auf die x-Achse?
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.501
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 23.02.2011, 10:41     Titel:
  Antworten mit Zitat      
Hallo,

Code:

Wenn das nicht hilft, schreib doch mal, was du bis jetzt hast.

Grüße,
Harald
_________________

1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
Private Nachricht senden Benutzer-Profile anzeigen
 
Logez
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 6
Anmeldedatum: 22.02.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 23.02.2011, 21:57     Titel:
  Antworten mit Zitat      
also mein code sieht nun so aus

Code:

function  daten_ploten
plot_daten = load('mean15.mat','mean15_global','mean15_wind','mean15_windmax','mean15_temp');
    x = datenum('01/01/2011');
    N = 31;
    xvec = x:1/(24*4):x + N;
   
    fig=figure('Position',[300, 100, 800, 800]);
    subplot(3,1,1);
    %plot(plot_daten.mean15_global, 'r');
    plot_daten.mean15_global=plot_daten.mean15_global;
    title('Strahlung')
    ylabel('W/m^2')
    plot(xvec, plot_daten.mean15_global)
    datetick


mean15_plot hat den wert 1x2976 double

als Fehlermeldung bekomme ich nun:
??? Error using ==> plot
Vectors must be the same lengths.

Error in ==> daten_ploten at 13
plot(xvec, plot_daten.mean15_global)

weiß nicht wie ich das ändern soll..
[/code]
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.501
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 23.02.2011, 22:38     Titel:
  Antworten mit Zitat      
Hallo,

na, das sollte nun nicht so schwer sein. xvec ist um eine Komponente zu lang, also machen wir es halt um eine kürzer.
Code:
 x = datenum('01/01/2011');
    N = 31;
    xvec = x:1/(24*4): x + N - 1/(24*4);


Grüße,
Harald
_________________

1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
Private Nachricht senden Benutzer-Profile anzeigen
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 23.02.2011, 22:45     Titel:
  Antworten mit Zitat      
Hallo Logez,

Code:

    x = datenum('01/01/2011');
    N = 31;
    xvec = x:1/(24*4):x + N;
    % ==> length(x) = 2977
    xvec = linspace(x, x + N, N * 24 * 4)
    % ==> length(x) = 2976
 

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
Logez
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 6
Anmeldedatum: 22.02.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 23.02.2011, 23:05     Titel:
  Antworten mit Zitat      
Danke! Das war auch echt eher nen dummer Fehler von mir.
Aber nun habe ich ja noch nicht genau das was ich wollte. habe nun am Anfang der x Achse "Januar" und am Ende "Februar" stehen. Will ja aber eigentlich auch die Zwischentage angezeigt bekommen.
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.501
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 23.02.2011, 23:40     Titel:
  Antworten mit Zitat      
Hallo,

1. Möglichkeit: Fenster größer machen, nochmal plotten
2. Möglichkeit: Hilfe konsultieren -> versch. Datumsformate verwenden
3. Möglichkeit: auf File Exchange nach zoom-adaptive Dateticks suchen.

Grüße,
Harald
_________________

1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
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.