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

verschachtelte for-schleifen

 

Sophie

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 14.03.2011, 19:20     Titel: verschachtelte for-schleifen
  Antworten mit Zitat      
Hey Leute!
Ich habe folgende Fragestellung
- ich möchte einen Speicherprozess automatisieren und habe 158 Spalten und 513 Zeilen aus Messdaten!Um mein Problem einfacher darzustellen habe ich es wie folgt heruntergebrochen:

Gegeben seien Ergebnisvektoren:

erg1=[1;2;3;4]
erg2=[5;6;7;8]
erg3=[9,10,11,12]

es soll daraus automatisch folgendes Array entstehen:

all_Data=
1 5 9
2 6 10
3 7 11
4 8 12

ich möchte nun über 2 For-Schleifen ein Array hier aus 4 Zeilen und 3 Spalten erzeugen lassen (später dann für meine diplomarbeitsstudie ein array bestehend aus 158 Spalten und 513 Zeilen )

es wäre wichtig, dass ich diesen Prozess automatisch über schleifen ablaufen lassen könnte, da ich für meine DA-Studie aus meinen 158 Ergebnisvektoren (mit 513 Zeilen) ein Array mit 158 spalten - d.h. jede Spalte ein Ergebnisvektor- und 513 Zeilen machen müsste!

Vielen dank für Eure Hilfe im Voraus,
Lg,
sophie


Andreas Goser
Forum-Meister

Forum-Meister


Beiträge: 3.654
Anmeldedatum: 04.12.08
Wohnort: Ismaning
Version: 1.0
     Beitrag Verfasst am: 14.03.2011, 19:24     Titel:
  Antworten mit Zitat      
Ich versteh noch nicht warum

Code:

all_Data=[erg1, erg2, erg3']
 


nicht sinnvoll ist,

Andreas
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
sophie

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 14.03.2011, 19:40     Titel:
  Antworten mit Zitat      
weil ich die ganzen 158 ergebnisvektoren für meine DA-studie nicht händisch eingeben möchte und mir diese in form eines Files/in einem Array abspeichern möchte!

eine Idee wie ich das realisieren kann?
danke,
sophie
 
punkNgrind
Forum-Century

Forum-Century


Beiträge: 136
Anmeldedatum: 10.03.11
Wohnort: Hamburg
Version: R2014b
     Beitrag Verfasst am: 14.03.2011, 22:08     Titel:
  Antworten mit Zitat      
Wie so kannst du die Ergebnisse nicht mit einer for-Schleife erstmal in die einzel Vektoren (erg1[x x+1...]) speichern und dann, wie Andreas beschrieben hat, die Matrix erstellen?

In welcher Form liegen denn deine Messdaten vor?

Edit: Oder ist es dein Problem die Daten erstmal auszulesen?
Private Nachricht senden Benutzer-Profile anzeigen
 
sophie

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 14.03.2011, 22:43     Titel: verschachtelte for-Schleife!
  Antworten mit Zitat      
Hey!

falls es jemanden interessant, hier is mein DA-m-file:

Code:

function cohfreq = eeg_coherence(filepath,patient,window,noverlap,nfft,fs)

filepath=[filepath,patient,'\mat-Files\'];
[filepath_array,number_of_files]=coherence_counter(filepath);

for i=1:number_of_files
   
    act_filepath=char(filepath_array(i));
    Data =load_Data(act_filepath);

% Data = importdata([filepath,patient,'\mat-Files\','A','*.mat'],'\t'); %
% öffne alle mat-files, die mit 'A' beginnen

cohfreq = struct('coherence',[],'frequency',[]);
cohfreq.coherence = struct('T5_O1',[],'T6_O2',[],'T3_T5',[],'T4_T6',[],'F3_P3',[],'F4_C4',[],'C3_P3',[],'C4_P4',[]);
cohfreq.frequency = struct('F',[]);

F3=Data (4,:);
F4=Data (6,:);
C3=Data (9,:);
C4=Data (11,:);
P3=Data (14,:);
P4=Data (16,:);
T3=Data (8,:);
T4=Data (12,:);
T5=Data (13,:);
T6=Data (17,:);
O1=Data (18,:);
O2=Data (19,:);  

el=fieldnames(cohfreq.coherence);
for el_pairs=1:8;
tmp = char(el(el_pairs));
if tmp == 'T5_O1'
    [elname,F] = mscohere(T5,O1,hanning(nfft),noverlap,(nfft/2+1),fs);
elseif tmp == 'T6_O2'
    [elname,F] = mscohere(T6,O2,hanning(nfft),noverlap,(nfft/2+1),fs);
elseif tmp == 'T3_T5'
    [elname,F] = mscohere(T3,T5,hanning(nfft),noverlap,(nfft/2+1),fs);
elseif tmp =='T4_T6'
    [elname,F] = mscohere(T4,T6,hanning(nfft),noverlap,(nfft/2+1),fs);
elseif tmp == 'F3_P3'
    [elname,F] = mscohere(F3,P3,hanning(nfft),noverlap,(nfft/2+1),fs);
elseif tmp =='F4_C4'
    [elname,F] = mscohere(F4,C4,hanning(nfft),noverlap,(nfft/2+1),fs);
elseif tmp == 'C3_P3'
    [elname,F] = mscohere(C3,P3,hanning(nfft),noverlap,(nfft/2+1),fs);
elseif tmp == 'C4_P4'
    [elname,F] = mscohere(C4,P4,hanning(nfft),noverlap,(nfft/2+1),fs);
end

cohfreq.coherence = setfield(cohfreq.coherence,tmp,elname);
cohfreq.frequency =  setfield(cohfreq.frequency,'F',F);
% for j=1:number_of_files
%     all_Data(noverlap+1,j)=
   
[a b c] = fileparts(act_filepath);
save([filepath,'coherence_',patient,'_',b,'.mat'], 'cohfreq');
end
end
%save([filepath,patient,'\mat-Files\cohfreq_',patient,'.mat'], 'cohfreq');

end[size=18][/size][color=red][/color][color=darkred][/color]
 


das Problem hierbei ist, dass mir die Ergebnisvektoren in einzelnen Matlab-files gespeichert werden - ich würde sie jedoch gerne in ein file -eine Spalte bzw. ein Ergebnisvektor neben dem anderen- abspeichern--> in Summe also 513 Zeilen und 158 Spalten!

Kann mir da jemand helfen?
Bitteeee ;=)!
 
_Peter_
Moderator

Moderator


Beiträge: 537
Anmeldedatum: 08.12.10
Wohnort: ---
Version: 7.10, 2010a
     Beitrag Verfasst am: 15.03.2011, 10:32     Titel:
  Antworten mit Zitat      
Hallo sophie,
Zitat:

erg1=[1;2;3;4]
erg2=[5;6;7;8]
erg3=[9,10,11,12]

erstmal die Frage, ob es Absicht ist, dass erg1 und erg2 Spaltenvekotren sind und erg3 hingegen nicht?

Prinzip wenn alles Spaltenvektoren sind: (Zeilenvektoren müssen halt einfach transponiert werden)
Code:

ergebnis = [] % Variable anlegen

ergebnis = [ergebnis erg1] % usw... beim einlesen der Datei einfach den Vektor in erg1 schreiben direkt
 


p.s.: nutz bitte die Code-Umgebung wenn du Quelltext postest, dann tauchen keine Smileys auf und man kann das wesentlich besser lesen.
_________________

Gruß
Peter
_________________
goMatlab-Knigge - dran gehalten?!
Schon in den FAQ gesucht? Oder der MATLAB Hilfe?
Ist vielleicht bei den Skripten oder den Tutorials was für dich dabei?
Private Nachricht senden Benutzer-Profile anzeigen
 
Andreas Goser
Forum-Meister

Forum-Meister


Beiträge: 3.654
Anmeldedatum: 04.12.08
Wohnort: Ismaning
Version: 1.0
     Beitrag Verfasst am: 15.03.2011, 10:38     Titel:
  Antworten mit Zitat      
Für mich liest sich das so, als wäre ein post-processing der MAT Dateien nötig - also

Alle MAT Dateien einlesen
Vektoren zu Matrix zusammenfügen.

Andreas
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
Sophie

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 15.03.2011, 14:58     Titel:
  Antworten mit Zitat      
Hallo Leute!

Ich bin's wieder mal ;=)!

Kann mir jemand dabei helfen, 158 einzelne Spaltenvektoren (mit 513 Zeilen), die mir aus einer Schleife erzeugt werden in ein File/Array zusammenzufassen, sodass im Gesamtfile dann die 158 spalten Spalte für spalte nebeneinander angeordnet werden und nicht in Einzelnen Mat-Files mit jeweils einer Spalte!

Vielen Dank für Eure Hilfe ;=)
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 15.03.2011, 15:11     Titel:
  Antworten mit Zitat      
Hallo Sophie,

Deine Frage enthält nicht genügend Details. In welcher Form hast Du denn die Spaltenvektoren zur Verfügung? Wieso werden die Vektoren überhaupt einzeln erzeugt, anstatt sie gleich in eine Matrix zu schreiben?

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
Sophie

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 15.03.2011, 17:09     Titel:
  Antworten mit Zitat      
Hallo leute!

Ich habe euch im Anhang meine m-Files drangehängt!

Ich greife auf EEG-Messdaten in einem Mat-File mit AiEj (A...Zeit-Abschnitte, E..Zeit-Epoche) !

Wenn ich statt der letzten for-schleife in meinem eeg_coherence.m folgendes:

[a b c] = fileparts(act_filepath);
save([filepath,'coherence_',patient,'_',b,'.mat'], 'cohfreq');

angebe, würde die Patientendaten für die Elekrodenpaare T5_O1,T6_O2,...
in einzelnen Matlabfiles gespeichert!

Ich möchte nun die Kohärenz-werte geordnet für die jeweiligen Elektrodenpaare und versch. Abschnitte/Epochen nebeneinander
ausgeben lassen!

Somebody who can help me ;=)?
Glg

load_Data.m
 Beschreibung:

Download
 Dateiname:  load_Data.m
 Dateigröße:  162 Bytes
 Heruntergeladen:  296 mal
eeg_coherence.m
 Beschreibung:
das ist meine Hauptfunktion!

Download
 Dateiname:  eeg_coherence.m
 Dateigröße:  2.32 KB
 Heruntergeladen:  335 mal
coherence_counter.m
 Beschreibung:

Download
 Dateiname:  coherence_counter.m
 Dateigröße:  1.4 KB
 Heruntergeladen:  334 mal
 
Sophie

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 15.03.2011, 17:36     Titel:
  Antworten mit Zitat      
Sophie hat Folgendes geschrieben:
Hallo leute!

Ich habe euch im Anhang meine m-Files drangehängt!

Ich greife auf EEG-Messdaten in einem Mat-File mit AiEj (A...Zeit-Abschnitte, E..Zeit-Epoche) !

Wenn ich statt der letzten for-schleife in meinem eeg_coherence.m folgendes:

[a b c] = fileparts(act_filepath);
save([filepath,'coherence_',patient,'_',b,'.mat'], 'cohfreq');

angebe, würde die Patientendaten für die Elekrodenpaare T5_O1,T6_O2,...
in einzelnen Matlabfiles gespeichert!

Ich möchte nun die Kohärenz-werte geordnet für die jeweiligen Elektrodenpaare und versch. Abschnitte/Epochen nebeneinander
ausgeben lassen -also:
A1E1 A1E2 A1E3 ...
T5_O1
T6_O2
..
..

Somebody who can help me ;=)?
Glg
 
Sophie

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 15.03.2011, 17:37     Titel:
  Antworten mit Zitat      
Sophie hat Folgendes geschrieben:
Sophie hat Folgendes geschrieben:
Hallo leute!

Ich habe euch im Anhang meine m-Files drangehängt!

Ich greife auf EEG-Messdaten in einem Mat-File mit AiEj (A...Zeit-Abschnitte, E..Zeit-Epoche) !

Wenn ich statt der letzten for-schleife in meinem eeg_coherence.m folgendes:

[a b c] = fileparts(act_filepath);
save([filepath,'coherence_',patient,'_',b,'.mat'], 'cohfreq');

angebe, würde die Patientendaten für die Elekrodenpaare T5_O1,T6_O2,...
in einzelnen Matlabfiles gespeichert!

Ich möchte nun die Kohärenz-werte geordnet für die jeweiligen Elektrodenpaare und versch. Abschnitte/Epochen nebeneinander
ausgeben lassen -also:
A1E1 A1E2 A1E3 ...
T5_O1
T6_O2
..
..

Somebody who can help me ;=)?
Glg
 
sophie

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 15.03.2011, 17:38     Titel:
  Antworten mit Zitat      
Sophie hat Folgendes geschrieben:
Sophie hat Folgendes geschrieben:
Sophie hat Folgendes geschrieben:
Hallo leute!

Ich habe euch im Anhang meine m-Files drangehängt!

Ich greife auf EEG-Messdaten in einem Mat-File mit AiEj (A...Zeit-Abschnitte, E..Zeit-Epoche) !

Wenn ich statt der letzten for-schleife in meinem eeg_coherence.m folgendes:

[a b c] = fileparts(act_filepath);
save([filepath,'coherence_',patient,'_',b,'.mat'], 'cohfreq');

angebe, würde die Patientendaten für die Elekrodenpaare T5_O1,T6_O2,...
in einzelnen Matlabfiles gespeichert!

Ich möchte nun die Kohärenz-werte geordnet für die jeweiligen Elektrodenpaare und versch. Abschnitte/Epochen nebeneinander
ausgeben lassen -also:
A1E1 A1E2 A1E3 ...
T5_O1
T6_O2
..
..

Somebody who can help me ;=)?
Glg
     
    Sophie

    Gast


    Beiträge: ---
    Anmeldedatum: ---
    Wohnort: ---
    Version: ---
         Beitrag Verfasst am: 15.03.2011, 17:39     Titel:
      Antworten mit Zitat      
    sophie hat Folgendes geschrieben:
    Sophie hat Folgendes geschrieben:
    Sophie hat Folgendes geschrieben:
    Sophie hat Folgendes geschrieben:
    Hallo leute!

    Ich habe euch im Anhang meine m-Files drangehängt!

    Ich greife auf EEG-Messdaten in einem Mat-File mit AiEj (A...Zeit-Abschnitte, E..Zeit-Epoche) !

    Wenn ich statt der letzten for-schleife in meinem eeg_coherence.m folgendes:

    [a b c] = fileparts(act_filepath);
    save([filepath,'coherence_',patient,'_',b,'.mat'], 'cohfreq');

    angebe, würde die Patientendaten für die Elekrodenpaare T5_O1,T6_O2,...
    in einzelnen Matlabfiles gespeichert!

    Ich möchte nun die Kohärenz-werte geordnet für die jeweiligen Elektrodenpaare und versch. Abschnitte/Epochen nebeneinander
    ausgeben lassen -also:
    Glg

      A1E1 A1E2 A1E3 ...
      T5_O1
      T6_O2
      ..
      ..
      Glg[/quote][/quote][/quote]
        [/quote]
        Somebody who can help me ;=)?
         
        Sophie

        Gast


        Beiträge: ---
        Anmeldedatum: ---
        Wohnort: ---
        Version: ---
             Beitrag Verfasst am: 15.03.2011, 17:41     Titel:
          Antworten mit Zitat      
        [quote="Sophie"]Hallo leute!

        Ich habe euch im Anhang meine m-Files drangehängt!

        Ich greife auf EEG-Messdaten in einem Mat-File mit AiEj (A...Zeit-Abschnitte, E..Zeit-Epoche) !

        Wenn ich statt der letzten for-schleife in meinem eeg_coherence.m folgendes:

        [a b c] = fileparts(act_filepath);
        save([filepath,'coherence_',patient,'_',b,'.mat'], 'cohfreq');

        angebe, würde die Patientendaten für die Elekrodenpaare T5_O1,T6_O2,...
        in einzelnen Matlabfiles gespeichert!

        Ich möchte nun die Kohärenz-werte geordnet für die jeweiligen Elektrodenpaare und versch. Abschnitte/Epochen nebeneinander
        ausgeben lassen -also:

        A1E1 A1E2 A1E3 ...
        T5_O1
        T6_O2
        ..
        ..

        Somebody who can help me ;=)?
         
        Neues Thema eröffnen Neue Antwort erstellen

        Gehe zu Seite 1, 2  Weiter

        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.