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

for schleife probleme

 

cellarius
Forum-Newbie

Forum-Newbie


Beiträge: 1
Anmeldedatum: 13.03.17
Wohnort: Berlin
Version: ---
     Beitrag Verfasst am: 13.03.2017, 15:41     Titel: for schleife probleme
  Antworten mit Zitat      
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...


lg

cellarius
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: 13.03.2017, 17:27     Titel: Re: for schleife probleme
  Antworten mit Zitat      
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:
Code:
alpha(1), alpha(2), ...

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