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

Probleme mit Schleifenprogrammierung - Auslesen einer Matrix

 

Ghostbiker

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 10.01.2013, 16:13     Titel: Probleme mit Schleifenprogrammierung - Auslesen einer Matrix
  Antworten mit Zitat      
Hallo,

ich bin gerade dabei mich in Matlab einzuarbeiten und stocke gerade bei der for-Funktion.

Ausgangspunkt:

Ich habe eine Matrix, welche in der ersten Spalte einen Studenindex (1:24) und in der zweiten einen der Stunde zugeordneten Wert x hat. Diese Daten liegen für einen Zeitraum über mehrere Tage vor, d.h. Spalte 1 hat mehrere Intervalle von 1 - 24.

Jetzt würde ich gerne alle Werte für die Stunden 1 in einer neuen Matrix haben, alle Werte für die Stunden 2 in einer neue Matrix etc.

Für die erste Stunde bekomme ich das auch gut hin:

Code:

n = length(Temp);
Result = zeros (n,2);                   %Erstelle Null-Matrix
for ind = 1:n
   k = 1;
    Result = Temp(k:24:n,:);   %auslesen von jeder 24. Zeile in allen Spalten
   k = k + 1;
end
 


Das k in der obigen Formel, war der klägliche Versuch, einen weiterlaufenden Index, welcher dann mit den 2er Stunden weitermacht, zu kreieren. Aber genau da hänge ich jetzt. Denn in Result werden nur die Werte der der Stunden 1 übertragen.

Könnt ihr mir da ein paar Tipps geben? Vielen Dank!!


markuman
Forum-Guru

Forum-Guru


Beiträge: 320
Anmeldedatum: 14.12.12
Wohnort: ---
Version: 2013a/2013b, Octave 3.6.4, 3.7.7
     Beitrag Verfasst am: 10.01.2013, 16:42     Titel:
  Antworten mit Zitat      
Code:

A =

     1     5
     2     6
     3     7
     4     8
     1     6
     2     5
     3     4
     4     3

>> M=[];
for z=1:size(A,1)
    ind=find(A(:,1)==z);
    M{z}=A(ind,2);
end
>>
 


Wenn du statt A, deine Matrix einsetzt, solltest du alle Werte für Stunde 1 in M{1} finden. Für Stunde 2 in M{2} ...
_________________

DIY OR DIE Cool

entropie=char(floor(94*rand(1, round(100.*rand)) + 32))
https://github.com/markuman
Private Nachricht senden Benutzer-Profile anzeigen
 
Ghostbiker

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 10.01.2013, 19:00     Titel:
  Antworten mit Zitat      
Super, vielen Dank! Es hat geklappt und ich habe meine Daten jetzt sortiert. Ich habe das Auslesen noch um eine Spalte erweitert und bekomme jetzt als Output z.B. für Stunde 2

Code:

Result{1,2}

ans =

   -0.4900   18.4600
   -2.2600   28.9200
   -3.5500   31.9200
   -5.0000   36.2000
   -5.1300   36.6700
 


Ich habe schon ewig rumgesucht, aber nichts gefunden. Wie kann ich jetzt innerhalb von Result{1,2} nur auf Spalte 1 oder Spalte 2 zugreifen? Also z.B. Spalte 1 als Vektor greifen.
 
markuman
Forum-Guru

Forum-Guru


Beiträge: 320
Anmeldedatum: 14.12.12
Wohnort: ---
Version: 2013a/2013b, Octave 3.6.4, 3.7.7
     Beitrag Verfasst am: 10.01.2013, 19:07     Titel:
  Antworten mit Zitat      
Code:


octave:22> Result {1,2}(:,:)
ans =

   0.00500   0.00000
   0.01000   0.00000
   0.01500   1.00000
   0.02000   1.00000
   0.02500   2.00000
   0.03000   2.00000
   0.03500   3.00000
   0.04000   3.00000
   0.04500   3.00000
   0.05000   4.00000

octave:23> Result {1,2}(:,1)
ans =

   0.0050000
   0.0100000
   0.0150000
   0.0200000
   0.0250000
   0.0300000
   0.0350000
   0.0400000
   0.0450000
   0.0500000

octave:24> Result {1,2}(:,2)
ans =

   0
   0
   1
   1
   2
   2
   3
   3
   3
   4

octave:25>


 


So? Wenn ich dich richtig verstanden habe...
_________________

DIY OR DIE Cool

entropie=char(floor(94*rand(1, round(100.*rand)) + 32))
https://github.com/markuman
Private Nachricht senden Benutzer-Profile anzeigen
 
Ghostbiker

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 10.01.2013, 19:12     Titel:
  Antworten mit Zitat      
Perfekt! Vielen Dank euch! Cool
 
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.