Verfasst am: 13.03.2017, 15:41
Titel: for schleife probleme
Hallo, ich ziehe mir aus eine Matritze Daten und würde gerne aus einer dreidimensionalen Matrix 30x30x32
die durch folgenden Code erzeuge, gerne einzelne Textdateien mit verschiedenen Namen schreiben
Code:
f=length(indexes.COH.data);
for ii=1:f
for kk=17:27 % data=indexes.COH.data(1,ii);
data_alpha(:,:,kk-16) = indexes.COH.data{1,ii}(:,:,kk);
end
mean_data_alpha(:,:,ii)=mean(data_alpha,3);
end
Mit folgenden Code schreibe ich ziemlich umständlich 32 einzelne 2dimensionale Dateien, aber ich bekomme es nicht hin das ganze in eine elegante Schleife umzusetzen, kann mir vielleicht jemand dabei helfen ?
Code:
data_alpha(:,:,kk-16) = indexes.COH.data{1,1}(:,:,kk);
mean_data_alpha_S1(:,:,1)=mean(data_alpha,3);
alpha_S1=double(mean_data_alpha_S1);
save Patient_alpha_S1.txt alpha_S1 -ascii;
data_alpha(:,:,kk-16) = indexes.COH.data{1,2}(:,:,kk);
mean_data_alpha_S2(:,:,1)=mean(data_alpha,3);
alpha_S2=double(mean_data_alpha_S2);
save Patient_alpha_S2.txt alpha_S2 -ascii;
data_alpha(:,:,kk-16) = indexes.COH.data{1,3}(:,:,kk);
mean_data_alpha_S3(:,:,1)=mean(data_alpha,3);
alpha_S3=double(mean_data_alpha_S3);
save Patient_alpha_S3.txt alpha_S3 -ascii;
data_alpha(:,:,kk-16) = indexes.COH.data{1,4}(:,:,kk);
mean_data_alpha_S4(:,:,1)=mean(data_alpha,3);
alpha_S4=double(mean_data_alpha_S4);
save Patient_alpha_S4.txt alpha_S4 -ascii;
data_alpha(:,:,kk-16) = indexes.COH.data{1,5}(:,:,kk);
mean_data_alpha_S5(:,:,1)=mean(data_alpha,3);
alpha_S5=double(mean_data_alpha_S5);
save Patient_alpha_S5.txt alpha_S5 -ascii;
Das ganze Spiel geht beliebig weiter, in diesem Beispiel bis 32
Ich stelle mir in etwas vor das ich eine for schleife in der Art hätte
for ii=32:1
data_alpha(:,:,kk-16) = indexes.COH.data{1,ii}(:,:,kk);
mean_data_alpha_Sii(:,:,1)=mean(data_alpha,3);
alpha_Sii=double(mean_data_alpha_Sii);
save Patient_alpha_Sii.txt alpha_Sii -ascii;
end
und dann soll damit die 3. Dimension der Matritze aufgelöst sein und ich habe 32 einzelne 30x30 Textdateien im Verzeichnis, die ich dann schön in SPSS oder Excel einlesen kann...
Verfasst am: 13.03.2017, 17:27
Titel: Re: for schleife probleme
Hallo cellarius,
Filenamen kann man recht leicht in einer Schleife erzeugen:
Code:
for iFile = 1:10
FileName = sprintf('File%03d.mat', iFile);
File = fullfile(Folder, FileName); % Never rely on the current folder
data = rand(2);
save(FileName, 'data');
end
Im Gegensatz dazu zählt die Verwendung von Indices in den Namen von Variablen zu den Standard-Fehlern. Nicht machen! "alpha_S1" ist eine schlechte Idee. Wenn die alphas irgendwie zusammen gehören, verwende ein Array stattdessen:
Oder wenn die einzelnen Elemente unterschiedlichen Typ oder Größe haben: Ein Cell-Array.
Du findest hunderte Diskussionen dazu im Forum, suche nach "eval".
Gruß, Jan
Einstellungen und Berechtigungen
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.