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

Speichern der Daten nach Einlesen in MatLab. HILFE!!!

 

MickiMausy
Forum-Newbie

Forum-Newbie


Beiträge: 4
Anmeldedatum: 16.03.17
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 27.03.2017, 10:19     Titel: Speichern der Daten nach Einlesen in MatLab. HILFE!!!
  Antworten mit Zitat      
Hallo,

ich bin Anfänger in MatLab und benötige Hilfe.

Ich habe ein Hauptordner, der knapp 5000 unterordnern hat mit Messungen und jede Messung ist eine txt.file (aber es sind nur Zahlen drinnen), die ich in MatLab einlesen will enthält 6490 Zeilen und eine Spalte, das heiß ein Vektor (6490 x 1).Ich möchte alle unterordnern von dem Hauptordner einlesen und alle Daten in einer Matrix speichern. Ich kann die Messungen einzeln einlesen aber das Speichern am Ende kriege ich irgendwie nicht hin. Ich kriege am Ende immer nur die letzte Messung gespeichert und nicht die gesamte 5000 Messungen....

meine files importiere ich wie folgt aus den Unterordnern:
Code:


delimiter = '';
if nargin<=2
    startRow = 1;
    endRow = inf;
end
fileID = fopen(strcat(Filename,filesep,'Messung.txt'))
dataArray = textscan(fileID, formatSpec, endRow(1)-startRow(1)+1, 'Delimiter', delimiter, 'EmptyValue' ,NaN,'HeaderLines', startRow(1)-1, 'ReturnOnError', false, 'EndOfLine', '\r\n');
for block=2:length(startRow)
    frewind(fileID);
    dataArrayBlock = textscan(fileID, formatSpec, endRow(block)-startRow(block)+1, 'Delimiter', delimiter, 'EmptyValue' ,NaN,'HeaderLines', startRow(block)-1, 'ReturnOnError', false, 'EndOfLine', '\r\n');
    dataArray{1} = [dataArray{1};dataArrayBlock{1}];
end
fclose(fileID);
Ergebnis = Messung
 
 



Könnte mir vielleicht jemanden weiterhelfen?

Bitte um Hilfe, ich komme hier nicht weiter Sad
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: 27.03.2017, 16:01     Titel: Re: Speichern der Daten nach Einlesen in MatLab. HILFE!!!
  Antworten mit Zitat      
Hallo MickiMausy,

Bitte poste eine Frage immer nur einmal - Danke!

Ich verstehe Deine Einlese-Routine nicht: Ist es wirklich hilfreich das File immer wieder nach vorne zu spulen? Es wäre doch viel einfacher die Daten auf einmal auszulesen und danach zu sortieren. Immerhin sind File-Operationen das langsamste, was man mit einem Rechner hinbekommen kann.

Allerdings betrifft das Problem ja gar nicht den gezeigten Code, oder? Dann poste bitte den code, der das Problem enthält, damit man einen passenden Lösungsvorschlag geben kann.

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

Forum-Newbie

Forum-Newbie


Beiträge: 4
Anmeldedatum: 16.03.17
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 27.03.2017, 16:17     Titel:
  Antworten mit Zitat      
Hallo Jan,

vielen Dank für die Antwort.

Beim Import eine Messung in MatLab, wird diese Einlese-Routine von MatLab generiert. Ich verwende sie weiter in einer Funktion um meine gesamten Messungen einzulesen. Nachfolgend meine Funktion, die ich benutzte um alle Ordner (die 5000 Messungen) einzulesen:
Code:

% Öffnen des Pfades
[pfad] = uigetdir();
    sub_path = dir(pfad)
% erster unterordner
    for temp_f_idx = 3:5005
       path_m = dir(strcat(pfad,filesep,sub_path(temp_f_idx).name));
% zweiter unterordner wo die txt.files sich befinden
         sub_temp_idx = 8;    
            subpath_m = strcat(pfad,filesep,sub_path(temp_f_idx).name,filesep,path_m(sub_temp_idx).name);
           fprintf('%s \n', subpath_m);
% Die txt.File      
                 main_temp_idx = 3;
                  %fprintf('%s',subpath_m);
                   Filename = subpath_m;
%    fprintf('%s \n', Filename)
       [Messung, X] = Import_data(Filename,  1000);

dann habe ich mit folgendem versucht die Daten zu speichern, aber es funktioniert so nicht:


%          M = repmat(Messung,145);
%          Matrix = M(:,1);
%          Ergebnis = reshape(Matrix,length(Messung),[]);
%              xlswrite('Messung.xlsx',M ,1,'A1:A(M)')
 



Falls es immer noch unklar ist, bitte sag mir Bescheid und ich versuche es besser zu formulieren. Ich wüsste zum Beispiel nicht wie ich sie anders einlesen kann?

P.S. Meine Muttersprache ist Französich Very Happy

Vielen lieben Dank für die Hilfe!

Beste Grüße,

MickiMausy
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: 31.03.2017, 08:53     Titel:
  Antworten mit Zitat      
Hallo MickiMausy,

Was geschieht bei diesem Code:
Code:

M = repmat(Messung,145);
Matrix = M(:,1);
xlswrite('Messung.xlsx', M , 1, 'A1')

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 - 2024 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.