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

Einen Mittelwertvektor erzeugen

 

Pinky
Forum-Anfänger

Forum-Anfänger


Beiträge: 34
Anmeldedatum: 14.11.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 14.01.2012, 18:04     Titel:
  Antworten mit Zitat      
Du hast immer noch nicht gezeigt, wie denn die Messungen überhaupt in deinen Workspace kommen. Werden die von der Festplatte geladen, oder wird jede schleifen-iteration eine Funktion ausgeführt?

Egal wie die Messungen nach Matlab kommen, das musst du in den Code einsetzen.

Nehmen wir also an die Funktion MESSUNG erzeugt deinen Messwert. Bisher hast du wohl etwas geschrieben wie:
Code:
Messung1=MESSUNG;


Nun musste du schreiben:
Code:
X(:,i)=MESSUNG


Damit es klappt musst du MESSUNG nur durch das wasauchimmer ersetzen, was dir den Messwert in deinem Workspace liefert.

gruß Pinky

P.S. wenn du die Daten lädtst schreibst du ja auch etwas wie.
Code:


Das kannst du auch entsprechend abändern. Wir müssen wirklich nur wissen WOHER die Messungen1-Messungen14 denn kommen
Private Nachricht senden Benutzer-Profile anzeigen


NNLab
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 59
Anmeldedatum: 11.10.11
Wohnort: Frankfurt am Main
Version: 7.12.0
     Beitrag Verfasst am: 16.01.2012, 13:24     Titel:
  Antworten mit Zitat      
Die Messungen werden direkt von der Festplatte geladen, also Messung1.mat bis Messung14.mat

Leider kann ich den von dir vorgeschlagenen Code gerade nicht testen, sobald ich das kann melde ich mich nochmal.
Private Nachricht senden Benutzer-Profile anzeigen
 
Pinky
Forum-Anfänger

Forum-Anfänger


Beiträge: 34
Anmeldedatum: 14.11.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 16.01.2012, 13:54     Titel:
  Antworten mit Zitat      
Das sieht doch recht günstig aus. Wenn du direkt Messung1.mat lädst und diese nur aus einem einzelnen Vektor besteht, so sollte der folgende Code hilfreich sein:

Code:

X= zeros(2000,Anzahl_Messungen);
for i=1:Anzahl_Messungen
     X(:,i)=load(['Messung',num2str(i),'.mat']);
end
Mittelwert = mean(X,2);
 


Dabei muss die entsprechende m-file natürlich im selben Ordner wie die Messdaten sein. Falls nicht, musst du bei load das Verzeichnis mit angeben.

Fals noch weitere Daten in der Matfile gespeichert sind ist es glaube ich etwas schwieriger, dann müsste das klappen:

Code:

X= zeros(2000,Anzahl_Messungen);
for i=1:Anzahl_Messungen
     load(['Messung',num2str(i),'.mat']);
     X(:,i)=eval(genvarname(['Messung',num2str(i)]));
end
Mittelwert = mean(X,2);




gruß Pinky
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: 16.01.2012, 15:04     Titel:
  Antworten mit Zitat      
Hallo,

Wie heißen denn die Variablen, die in den mat-Files liegen? Jeweils messung1, messung2, etc? Ich würde es dann so machen:

Code:
X= zeros(2000,Anzahl_Messungen);
for i=1:Anzahl_Messungen
     temp=load(['Messung',num2str(i),'.mat']);
     X(:,I) = temp.(['Messung',num2str(i)]);
end
Mittelwert = mean(X,2);


Wenn die Anzahl der Messungen nicht bekannt ist, kann man auch über den DIR-Befehl gehen und alle verfügbaren Dateien nehmen.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
NNLab
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 59
Anmeldedatum: 11.10.11
Wohnort: Frankfurt am Main
Version: 7.12.0
     Beitrag Verfasst am: 16.01.2012, 15:54     Titel:
  Antworten mit Zitat      
So habe nun beide Varianten, von Pinky und Harald, versucht und dabei kommt jedes mal dasselbe Ergebnis, ans = 112.

So habe ich es geschrieben:
Code:
X= zeros(2000,14);
for i=1:14
     load(['Messung',num2str(i),'.mat']);
     X(:,i)=eval(genvarname(['Messung',num2str(i)]));
end
Mittelwert = mean(X,2);


Ich habe es auch mit mehreren Messungen versucht und jeweils auch die entsprechende Anzahl korrigiert, das Ergebnis bleibt dasselbe: ans = 112

Die m-File liegt bei den .mat Messungen im selben Ordner.

Mal nebenbei: 112 = Notruf, das brauch ich dringend Very Happy
Private Nachricht senden Benutzer-Profile anzeigen
 
Pinky
Forum-Anfänger

Forum-Anfänger


Beiträge: 34
Anmeldedatum: 14.11.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 16.01.2012, 16:04     Titel:
  Antworten mit Zitat      
Also ich habe mir einfach einmal 5 zufällige 2000x1 Vektoren erstellt, die Messung1-Messung5 heißen und mit denen lief das Programm bestens.

Grundsätzlich sollte man wenn ein Programm nicht das macht was es soll alles einzeln anschauen.

Du kennst ja die Messwerte. Schau doch als erstes einmal, wie denn die Matrix X aussieht. Wurden die Daten richtig eingelesen? Hast du einmal das semikolon von der mean Zeile weggenommen, das er dir alles direkt ausgibt

Kann es sein, dass du noch etwas anderes in deinem Workspace hattest, das ans hieß oder du nur eineinzelnes Element von Mittelwert aufgerufen hast.

gruß Pinky
Private Nachricht senden Benutzer-Profile anzeigen
 
NNLab
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 59
Anmeldedatum: 11.10.11
Wohnort: Frankfurt am Main
Version: 7.12.0
     Beitrag Verfasst am: 16.01.2012, 20:21     Titel:
  Antworten mit Zitat      
Sooo,

musste heute leider den ganzen Tag mit der 2009er Matlab arbeiten, und dort aus welchen Grund auch immer hat es nicht funktioniert.
Nun bin ich an einem Rechner mit der 2011er Version und es funktioniert!

Also Harald und vor allem Pinky, ich danke euch für eure Hilfe und vor allem auch für eure Geduld mit mir.
DANKE
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen

Gehe zu Seite Zurück  1, 2

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.