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

Vektoren in Matrix autom. immer eine Spalte weiter ablegen

 

alex85
Forum-Anfänger

Forum-Anfänger


Beiträge: 40
Anmeldedatum: 06.10.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 22.11.2009, 12:16     Titel: Vektoren in Matrix autom. immer eine Spalte weiter ablegen
  Antworten mit Zitat      
Ich habe in meinem anderen Thread das Problem schon angesprochen...

Ich lese Spaltenvektoren von diversen xls-Files ein, wovon immer eine gewisse Anzahl zusammengehört. Nachdem eine Gruppierung (z.B. 5 xls-Files mit je einer Spalte voll Daten) abgeschlossen ist, will ich meine (:,5)-Matrix in einem mat-File ablegen. Bisher habe ich es so gelöst:

Code:
clear all; clc;

start = 'c:';
batchdir0 = uigetdir (start, 'Select day/maneuver folder');
batchdir1 = dir([batchdir0,'/*.xls']);

% Anzahl der Zeichen von Laufnummer bis Ende, z.B. '_01_D_.xls' = 10
length_ending=8;

for i=1:length(batchdir1)
 
    % Einlesen der Daten aus *.xls-File
    [num,txt] = xlsread([batchdir0, '\',  batchdir1(i).name]);
   
    % Laufnummern + Ende von Namen entfernen und i / i+1 miteinander vergleichen
    name = batchdir1(i).name(1:end-length_ending);
    try    
        name1 = batchdir1(i+1).name(1:end-length_ending);
    catch
    end
   
    % Daten-Matrix erstellen
    s = [name, '(:,i) = num(:,2);'];
    switch i
        case length(batchdir1)
            eval(s);
            % Messlänge in [mm]
            LT = txt{3};
            gauge_length = str2double(regexprep(LT, {'LT' 'MM'}, ''));
            % Matrix in *.mat-File speichern
            save([name,'.mat'], name, 'gauge_length');
            movefile([name,'.mat'], batchdir0);
        otherwise
            if strcmp(name,name1) == 1  
                eval(s);
            else
                eval(s);
                % Messlänge in [mm]
                LT = txt{3};
                gauge_length = str2double(regexprep(LT, {'LT' 'MM'}, ''));
                % Matrix in *.mat-File speichern
                save([name,'.mat'], name, 'gauge_length');
                movefile([name,'.mat'], batchdir0);
            end
    end
end


Hier ist jetzt natürlich das Problem, dass ich durch das
Code:
   % Daten-Matrix erstellen
    s = [name, '(:,i) = num(:,2);'];

mir eine Matrix erstelle, die im Endeffekt genauso viele Spalten wie die Anzahl an xls-Files im Ordner besitzt. Ich möchte aber nach jeder abgeschlossenen Gruppierung die Daten in meiner Matrix immer ab Spalte 1 ablegen. Wenn meine 1 Gruppierung 5 files enthält, startet bei 2 Gruppierung mit 5 Spalten mit lauter 0ern und danach sind erst meine interessierenden Werte abgelegt.
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.