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

Indexen einer Array

 

Christin
Forum-Newbie

Forum-Newbie


Beiträge: 2
Anmeldedatum: 27.06.19
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 06.07.2019, 21:30     Titel: Indexen einer Array
  Antworten mit Zitat      
Hallo,
ich habe eine Datei mit einer 1600x8 Matrix -data- .
Interessant sind nur die erste Spalte (Zeit) data(:,1) und die zweite Spalte (Amplitude) data(:,2).
Davon habe ich nun 290 Dateien und ich möchte am Ende 290 Geschwindigkeiten haben.
Ich möchte, dass sich MAtlab in der ersten Spalte zwischen 0,00002 und 0,000025 aufhält, mir dann die Indexe der Matrix dazu ausgibt und mit den Indexen dann die zugehörigen Werte der zweiten Spalte ausgibt. Aus den Werten der zweiten Spalte soll er dann den Maximum Wert bestimmen und mir zu dem Index dann den direkten Wert der ersten Spalte (Zeit) ausgeben. Das habe ich soweit hinbekommen (vielleicht ein bisschen umständlich, aber es läuft^^)
Nun möchte ich das für alle 290 Dateien durchlaufen lassen und am ende den Geschwindigkeitsvektor haben. Dafür muss ich aber irgendwie, wenn er auf die zweite Spalte zugreift, den Wert der Datei (k) zuordnen können.
Die Spalte 1 ist in jeder Datei gleich (gleiches Zeitfenster).

Code:


% Geschwindichkeit berechnen

       Array=data(data(:,1)>=0.00002 & data(:,1)<=0.000025);
       [index]=find(data(:,1)>=0.00002 & data(:,1)<=0.000025);
% Ab hier greift er auf den Wert der 2. Spalte zu
       h=data(k)(index,2); ??

       Cmax(k)=max(h)
       A=[index,Array,h]
       u=find(A(:,3)==Cmax(k))
       T(k)=A(u,2)
       v(k)=0.1/T(k)
 


Mein Problem ist nun, dass ich kein Index auf eine Matrix anwenden kann, die schon "geindext" wurde.

Für ein paar problemlösende Anregungen wäre ich dankbar.
Lg
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: 08.07.2019, 11:19     Titel: Re: Indexen einer Array
  Antworten mit Zitat      
Hallo Christin,

Zitat:
Nun möchte ich das für alle 290 Dateien durchlaufen lassen und am ende den Geschwindigkeitsvektor haben. Dafür muss ich aber irgendwie, wenn er auf die zweite Spalte zugreift, den Wert der Datei (k) zuordnen können.

Woher stammt denn das "k"?
Müsste da nicht eine Schleife über die Files sein?
Ich habe nicht verstanden, woher nun eine "Geschwindigkeit" stammen soll.

Code:
match = (data(:,1)>=0.00002 & data(:,1)<=0.000025);

       Array = data(match);
       index = find(match);
       h       = data(index,2);   % Woher soll das "data(k)" stammen?
 

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
Christin
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 2
Anmeldedatum: 27.06.19
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 10.07.2019, 12:07     Titel:
  Antworten mit Zitat      
Hallo,

ja das k läuft oben beim einlesen der Dateien durch. Die Dateien sind von 001 bis 290 benannt.

Code:
  %% File Lesen
    filename = sprintf('%03d.CSV',k);
    if exist(filename, 'file')
       S = fileread(filename);
       NLpos = find(S == newline);
       S(1:NLpos(10)) = [];    %delete first 10 lines
       S(S==',') = '.';
       fmt = repmat('%f', 1, 8);
       data = cell2mat( textscan(S, fmt, 'Delimiter', ';'));
   %% Geschwindigkeit berechnen
       
        else
        fprintf('Die Datei %s existiert nicht.\n', filename)
    end
end
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 - 2024 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.