% Geschwindigkeitskomponenten u,w im experimentellen Kosy einlesen
ue = double(imx.Data(1:zeilen,1:spalten)) .* imx.ScaleI(1);
we = double(imx.Data(1:zeilen,spalten+1:(2*spalten))) .* imx.ScaleI(1);
% Achsen x, z im experimentellen Koordinatensystem einlesen
xe = ([1:zeilen]-0.5)*imx.Grid*imx.ScaleX(1)+imx.ScaleX(2);
ze = ([1:spalten]-0.5)*imx.Grid*imx.ScaleY(1)+imx.ScaleY(2);
% Ersetzten der 'Nullen' im Vektorfeld durch NaN (Not a Number)
indices = find((ue+we)==0);
ue(indices) = NaN;
we(indices) = NaN;
% Transponieren, damit Daten aussehen wie Davis-Daten (wenn in Matlab-Figure Axen % 'reverse' gesetzt und damit gewünschtes KOS angezeigt wird)
ue = ue';
we = we';
%'Ränder' = 1. Spalte stromauf und letzte Spalte stromab abschneiden
index_links = min(find(max(~isnan(ue))==1));
index_rechts = max(find(max(~isnan(ue))==1));
% Koordinatentransformation experimentell (e) -> global
u = ue;
x = -xe;
w = -we; % Bei Geschwindigkeiten muss hier kein Vz-Wechsel hin, bei RMS wohl!
z = -ze;
% dimensionslos machen mit Durchmesser
X = x./Diameter;
Z = z./Diameter;
Meine Aufgabe ist es nun mehrere Dateien einzulesen und mehrere Bilder angezeigt zu bekommen.
Dies wollte ich mit einer for Schleife machen.
Ich finde jedoch keinen Ansatz.
Mir wurde gesagt ich kann mit:
A=strvcat ('Datei1', 'Datei2', 'Datei3');
A(i,: )
was anfangen.
Aber wie verbinde ich das mit dem imagesc?
Und wo setz ich meine Laufvariable ein? Bei file(i)?
Die Dateien besitzen alle andere Namen.
Es würde aber schon reichen wenn ich z.B. alle Dateien mit der Endung *.VC7 aus einem Ordner darstellen könnte.
% Die Daten werden aus der Datei eingelesen % (über Unterfunktion read_2C
% über for_schleife Bilder einlesen % wie diese dargestellt werden müssen, muss du selbst entscheiden for f=1:length(files)
file= fullfile(path2file,files{k}) ;
[u_rms,w_rms,X,Z] = read_2C(file,Diameter);
Erstmal vielen Dank für die Antwort.
Habs ausprobiert und es funktioniert.
Da ich keine Erfahrung mit MATLAB habe fällt es mir natürlich etwas schwer das ganze nachzuvollziehen.
Soweit ich es verstanden habe kann ich hiermit meine Dateien auswählen, ich definiere die Dateien mit *.VC7 und kann durch Multiselect 'on' mehrere auf einmal auswählen.
Ich bräuchte jetzt noch eine Funktion bei der ich einen bestimmten Bereich der Bilder angezeigt bekomme. Die Bilder sind ja über eine X und Z Achse aufgetragen und jetzt möchte ich z.B. den Bereich 180-240 (X-Achse) und +- 15(Z-Achse) auf allen Bildern angezeigt bekommen.
Hoffe die ganzen Fragen bereiten keine allzu großen Umstände.
Bestimmt ob die Dateien die ich auswähle cell array sind? Was genau ist cell array?
Wozu genau brauch ich die beiden Befehle?
Ich hab sie mal rausgelassen und der Ablauf funktioniert.
Nur wenn ich bei den Dateien auswählen auf "Cancel" gehe dann krieg ich ne Fehlermeldung von Matlab.
Könnte mir jemand noch erklären was genau diese beide If schleifen aussagen und wofür ich die genau brauche?
Das dient nur zur Sicherheit, weil, wenn man nur ein File auswählt, werden files als CHAR-ARRAY zurückgegeben, Bei mehreren Files ist es CELL OF STRINGs.
Und FOR-Schleife wurde dann nicht mehr funktionieren, weil es CELL erwartet wird.
CELL ist ein Sammelcontainer, der unterschiedliche Datatypen enthalten kann doubles, integers,strings, arrays, structs, cells
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.