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

Mittelwertbildung

 

floh91
Forum-Anfänger

Forum-Anfänger


Beiträge: 40
Anmeldedatum: 25.02.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 12.03.2010, 15:16     Titel: Mittelwertbildung
  Antworten mit Zitat      
Das Problem ist die Mittelwertbildung aus mehreren Dateien.

Ich habe einen ordner mit beliebig vielen Dateien mit je einer beliebig großem Matrix (Geschwindigkeitsfeld).

Mich interessiert das Geschwindigkeitsfeld an einer bestimmten Stelle y = konstant in diesem Feld für alle Dateien in dem Ordner. Diese Aufgabe haben ich zur Zufriedenheit gelöst mit Ausgabe als Bild und Datei.

Nun interessiert mich jedoch nicht nur das Geschwindigkeitsprofil für die einzelnen Dateien, sondern auch das gemittelte über alle Dateien und hier hänge ich, da meiner Meinung nach jetzt alle erstellten Dateien neu eingelesen werden müsen und jeweils immer zeilenweise die Werte gemittelt werden müssen, aber eben für alle Dateien hintereinander.

Wie geht man hier ab klügsten vor?

Freue mich über jede Hilfe und bitte fragt, wenn etwas in der Beschreibung unklar ist. Die Lösung, d.h. eure Hilfe ist sehr wichtig für mich.

Herzlichen Dank schon einmal.

Flo

PS:

Teil 1 der Lösung => auslesen der Geschwindigkeitsprofile für y = konstant und jede Datei plus schreiben der Ergebnisse in neue Dateien:

Code:
%% Geschwindigkeit  für y = konstant
% plottet c_v entlang y = konst als *.png in separaten Bild_Ordner sowie
% Datenfiles in separaten Daten_Ordner

clear all
close all
clc;

Y = input('y-Wert:');  %input('y-Wert:');  

colums=16;  %%% the total numbers of columns
Headerlines=20;  %%% the number of the header lines

% Datein importieren

d=uigetdir('','Auswahl Datenordner');
cd(d);
pr=dir('*.dat');
names={pr.name};

numfiles=numel(names);

mkdir(fullfile(d, 'Bilder_y'));
mkdir(fullfile(d, 'Daten_y'));

for i= 1:numfiles
   
    i
   
    cd(d);
   
    fid= fopen(names{1,i},'r');
   
    InputText= textscan(fid, '%s', Headerlines, 'delimiter', '\n'); %read the head of the file
    Daten= fscanf(fid,'%g %g %g ', [colums inf]);  %read the data
   
    fclose(fid);
   
    [pathstr, name, ext, versn] = fileparts(names{1,i});
   
    [O,I]= min(abs(Daten(2,:) - Y));
    K= find(Daten(2,:) == Daten(2,I));
    X= Daten(1,K);  % X Werte
    C= Daten(4,K);  % u Werte
    C2= Daten(5,K);  % v Werte

    ysel=  Daten(2,I);
   
    name2 = strcat('y = ', num2str(ysel));
    l= strcat(name2,'.avi');
   
    C_re = sqrt(C.^2 + C2.^2);
   
%   Plotten
    plot(X,C2)
   
    % Plot formatieren
    set(gca,...
     'Gridlinestyle','-','xMinorGrid','off','yMinorGrid','off',...
     'Fontname', 'Helvetica','fontsize',20);
    set(1,'units','centimeters','position',[0 0 8 8], ...
     'PaperOrientation', 'portrait', 'PaperPositionMode', 'auto',...
     'papersize',[14 10]);
    ylabel('Geschwindigkeit c_v [m/s]')
    xlabel('x-Position [mm]')
   
    % Plot speichern
    cd(fullfile(d, 'Bilder_y'));
    % saveas(gcf, name, 'eps');
    saveas(gcf, name, 'png');
   
    %Bilder erstellen  
    Bild(i) = getframe;
    % Movie = addframe(Movie, Bild);
   
   % Daten speichern
   % speichern C_v Daten
   
    cd(fullfile(d, 'Daten_y'));
    fid= fopen(strcat(name,'.out'),'wt');
    fprintf(fid,'%2.6f %2.6f\n',vertcat(X, C2));    
    fclose(fid);
   
    N(i) = i;
    t(i) = 0.033*i-0.033;
     
end  


PPS: Versuch Lösunf Teil 2 der Aufgabe => Mittelung der erhaltenen Geschwindigkeitsprofile über der Zeit, d.h. über alle erhaltenen Dateien

Hier fehlt irgendwie der entscheidende Gedanke Embarassed

Code:
pr=dir('*.out');
names={pr.name};
numfile=numel(names);

for k = 1:numfile

    fid= fopen(names{1,k},'r');
      A = fscanf(fid,'%g %g ', [2, 29]);  %read the data
      A = A';
    fclose(fid);

     [pathstr, name, ext, versn] = fileparts(names{1,k});
     
     k
   
       Xx= A(:,1);  %  x Werte
       Vo= A(:,2);  %  c_v Werte
   

     
     t2(k) = 0.033*k-0.033;
     
   
end
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.