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 alle X- Werte

 

lilov
Forum-Century

Forum-Century


Beiträge: 193
Anmeldedatum: 05.05.10
Wohnort: Bremerhaven
Version: ---
     Beitrag Verfasst am: 06.10.2010, 16:01     Titel: Mittelwert alle X- Werte
  Antworten mit Zitat      
Hallo Leute,

ich habe folgendes Problem. Ich habe eine Zeireihe wie z.B

Code:


y = rand(100,1);

 


Ich möchte von allen 20 Werten einen Mittelwert bilden. bis jetzt habe ich den reshape Befehl benutzt:

Code:

y = reshape(y,20,[]);
y = mean(y)';

 


Meine Frage ist ob es eine bessere Lösung dafür gibt, da mit dem reshape Befehl die Länge des Vektors durch in dem Fall 20 dividierbar sein muss und ich jedes Mal das überprüfen muss und ggf. einige samples löschen muss damit es hinkommt.

Ich bedanke mich im Voraus für eure Bemühungen!

Gruß,

lilov
Private Nachricht senden Benutzer-Profile anzeigen


Bernddd

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 06.10.2010, 16:16     Titel:
  Antworten mit Zitat      
so denke ich:

Code:

for ind=1:10
   mean(x((1:10)+10*ind))
end
 
 
lilov
Themenstarter

Forum-Century

Forum-Century


Beiträge: 193
Anmeldedatum: 05.05.10
Wohnort: Bremerhaven
Version: ---
     Beitrag Verfasst am: 06.10.2010, 16:36     Titel:
  Antworten mit Zitat      
Hi,

ich hab's am Anfang auch mit Schleifen gemacht. da funktioniert reshape aber besser und schneller, da ich Matrizen habe die über 4 Millionen Zeilen haben.
Trotzdem Danke!

Lilov
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: 06.10.2010, 23:51     Titel:
  Antworten mit Zitat      
Hallo lilov,

Ich habe ein Mex-File dafür geschrieben:
http://www.mathworks.com/matlabcentral/fileexchange/24812

Dabei wird der Rest des Vektors (oder der Matrix), der nicht ganzzahlig teilbar ist, weggelassen.

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

Forum-Century

Forum-Century


Beiträge: 193
Anmeldedatum: 05.05.10
Wohnort: Bremerhaven
Version: ---
     Beitrag Verfasst am: 07.10.2010, 09:45     Titel:
  Antworten mit Zitat      
Hi Jan,

das ist ja perfekt!! Vielen Dank!
da fehlt nur die Eingabeaufforderung bei den input parameters....oder ist das nur bei mir..

Gruß,

lilov
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: 07.10.2010, 11:31     Titel:
  Antworten mit Zitat      
Hallo Lilov,

BlockMean ist eine Funktion, bei der man die Input-Parameter als Input-Parameter angibt. Eine Eingabeaufforderung wäre hier absolut nicht nützlich.

Aber vielleicht habe ich auch nur falsch verstanden, was Du mit "Eingabeaufforderung" meinst. Irgend eine Art INPUT?!

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

Forum-Century

Forum-Century


Beiträge: 193
Anmeldedatum: 05.05.10
Wohnort: Bremerhaven
Version: ---
     Beitrag Verfasst am: 07.10.2010, 12:54     Titel:
  Antworten mit Zitat      
Hi Jan,

sorry, vllt habe ich mich falsch ausgedrückt. mit eingabeaufforderung meinte ich dass beim Engeben der Funktion einem keinen Hinweis gegeben wird welche und wieviele Eingabeparameter die Funktion benötigt ..zumindest bei der mex-file Version.

Gruß,
lilov[/b]
Private Nachricht senden Benutzer-Profile anzeigen
 
Bernddd

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 07.10.2010, 13:01     Titel:
  Antworten mit Zitat      
Habs mir auch mal angeschaut:

mexErrMsgIdAndTxt("JSim:BlockMean:BadNArgin", "2 or 3 inputs required.");

also 2 bis 3.

Gruß Bernddd
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 07.10.2010, 23:13     Titel:
  Antworten mit Zitat      
Hallo Lilov,

Es erscheint eine Fehlermeldung, wenn die falsche Anzahl an Parametern oder der falsche Typ eingegeben wird:
Code:
BlockMean(rand(5))
>> Error using ==> BlockMean
2 or 3 inputs required.

BlockMean({1:10}, 2, 3)
>> Error using ==> BlockMean
1st input must be UINT8 or DOUBLE array.
 


Im C-File befindet sich ein umfassender Hilfetext:
Code:


Aber das wichtigste ist natürlich der HELP-Befehl. Dafür wird neben dem C- auch ein M-File mitgeliefert, so dass für BlockMean genau wie für alle Matlab-Funktionen dies hilft:
Code:
help BlockMean

Generell ist HELP die beste Method um sich über eine Funktion zu informieren - wie immer in Matlab.

Gruß, Jan
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.