ich habe einen Code, in dem ich die fft ausführen möchte.
Am liebsten wäre es mir, der Nutzer wählt die txt-Dateien per Multiselect selbst aus, von der er eine fft haben möchte, daher habe ich den Befehl
%--------------------------------------------------------------------------
% Plot the first half of the periodogram, up to the Nyquist frequency % Plot single-sided Amplitude_LL1_x spectrum (Amplitude_LL1_x vs. Frequency)
%--------------------------------------------------------------------------
FrequenzLL1x = freq(1:floor(NFFT_LL1_x/2))';
AmplitudeLL1x = 2*AmplitudeLL1x(1:floor(NFFT_LL1_x/2));
AmplitudeLL1x(1) = AmplitudeLL1x(1)/2;
Phase = Phase(1:floor(NFFT_LL1_x/2));
Leistung = 2*Leistung(1:floor(NFFT_LL1_x/2));
Leistung(1)=Leistung(1)/2;
Mit dlmread und der GLEICHEN Datei läuft es perfekt durch. Weswegen ich mir auch nicht erklären kann, warum er bei uigetfile einen leeren Array vermutet...
Ein weiteres Problem ist, dass ich mehrere Plots haben möchte und diese über
Hast du einen Lösungsvorschlag, wie ich die gewünschte Funktion umsetzten kann, also das auswählen einer Datei, die dann mit ihren Daten komplett eingelesen wird und danach Spalten auswählen?
Das n sollte für die "Nummern" der figures stehen, also n=1..9, das Problem habe ich aber soeben gelöst, ich habe die function immer neu definiert in einem M-File
hast du denn die Doku dazu mal gelesen? Dann sollte nämlich vollkommen klar sein, dass uigetfile dir den Dateinamen und nicht den Inhalt der Datei liefert. Einlesen musst du sie dann schon noch selber. Du willst wohl das:
1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
Das ist nicht ganz das, was ich möchte, kommt aber schon sehr nahe dran. Ich möchte mehrere Dateien einlesen können und nicht nur eine,das wäre optimal. Hier liegt mein eigentliches Problem...
Danke für den netten Tipp, da wäre ich nie drauf gekommen, nachdem ich schon Tage an diesem Problem bastle...
Ich habe nämlich nachgeschaut, aber es gibt nicht das, was ich oben beschrieben habe!!!
Ich habe hier beschrieben wie man alle Exelfiles aus einem Ordner einliest. Da muesstest du noch 1-2 Codezeilen aendern um es auf dein Problem umzumuenzen.
sollen diese Dateien auf einmal ausgewählt werden?
Dann 'multiselect' auf 'on' und eine for-Schleife über die Dateien.
Wenn sie nacheinander ausgewählt werden sollen, dann das uigetfile auch noch in die Schleife rein.
Grüße,
Harald
_________________
1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
Die Idee ist gut, aber was mache ich bei der for-Schleife, wenn ich nie weiß, wie viele Dateien es sind, von 2-30 gibts da nämlcih alle Varianten und die Dateien leigen nicht schön in einem Extraordner. Deswegen kann ich auch nicht über die Zahl der Elemente gehen. Kann man die Anzahl der vom Nutzer ausgewählten angeben lassen und das dann als k=1..AnzahlAusgewählterDateien machen?
ich sehe das jetzt als Hinweis, dass du die erste Variante willst.
Antwort: Natürlich kannst du. Du brauchst ja nur im Nachhinein abfragen, wieviele Dateien ausgewählt wurden:
Code:
[filenames, pathname] =uigetfile({'*.txt'},'MultiSelect','on');
anzahl = length(filenames);
M = cell(1, anzahl);
for I = 1:anzahl
M{I} = dlmread(fullfile(pathname, filename{I}), '\t');
a_LL1_x{I} = M{I}(:,2);
1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
Okay, danke, das funktioniert super, jetzt nur noch eine letzte Frage, ich möchte die Spalten der ausgewählten Dateien dann in einem Plot vergleichen lassen. Ich habe die Schleife jetzt auch über die Plots gezogen, aber im Moment überschreibt er mir den Plot von Datei1 dann mit dem Plot von Datei2...
wie kann ich sagen, dass Datei1 in einer anderen Farbe geplottet wird als DateiN und alle ins gleiche Diagramm sollen?
Vielleicht mit dem hold on-Befehl?
1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
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.