Verfasst am: 30.09.2013, 12:21
Titel: mehrere Daten einlesen
Hallo,
ich habe folgende Problemstellung:
viele mat-dateien, die sich nur im dateinamen geringfügig unterscheiden.
z.B. R1_t18_H100_T200_d600.mat
dabei variieren jeweils die Zahlen hinter den Buchstaben.
Ich möchte jetzt alle Dateien auslesen und matlab soll mir das dann in einer Matrix ausgeben.
Problem ist: ich habe zwar einen plan im kopf kann ihn aber nicht umsetzen da ich matlab-anfänger bin.
Mein Ansatz:
Code:
clc;
clearall;
closeall;
D=dir('..\..\..\2013_09_02 Versuche\2013_09_02 Versuchstag 218 grad\MAT');
d = size(D);
%%
for i = 1:d(1) %Start bei 1
data_name{i,1} = (D(i,1).name());%Dateinamen auslesen
%IN (Rx_txx_Hxxx_Txxx_dxxx)
IN{i,1} = str2double(data_name{i}(1)); % R ifstrncmp(data_name{i}(2))==1; % 1,2,3,4 ...
IN{i,1} = str2double(data_name{i}(4)); % t ifstrncmp(data_name{i}(5))==1 && ifstrncmp(data_name{i}(6))==8; % 18,25,30,35 ...
IN{i,1} = str2double(data_name{i}(8)); % H 100,150,175,200,225,250,275,300 ifstrncmp(data_name{i}(9))==1 && ifstrncmp(data_name{i}(10))==0 && ifstrncmp(data_name{i}(11))==0; % 100,150,175,200,225,250,275,300 ...
IN{i,1} = str2double(data_name{i}(13)); % T ifstrncmp(data_name{i}(14))==0 && ifstrncmp(data_name{i}(15))==8 &&if strncmp(data_name{i}(16))==0; % 080,100,120,140,155,158,160,163,165,180,200,220,240,260,280,300,320 ...
IN{i,1} = str2double(data_name{i}(18)); % d ifstrncmp(data_name{i}(19))==6 && ifstrncmp(data_name{i}(20))==0 && ifstrncmp(data_name{i}(21))==0% 600,625,650,675
...
Verfasst am: 30.09.2013, 18:02
Titel: Re: mehrere Daten einlesen
Hallo Ommmel09,
Zunächst würde ich wie immer empfehlen, "clear all" wegzulassen. Das Behindern des Debuggers durch die Löschung aller Breakpoints ist eine sehr schlechte Idee.
Ich verstehe "damit möchte ich jede stelle des dateinamen ansprechen und ihm sagen was er machen soll" nicht. Die Zahlen kann man auch mit einen einfachen SSCANF herauslösen:
Code:
s = 'R1_t18_H100_T200_d600.mat';
num = sscanf(s, 'R%d_t%d_H%d_T%d_d%d.mat');
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
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.