Ich habe leider ein Problem mit Octave unter Windows XP. Starte ich Octave über das Icon, das während der Installation angelegt wurde und tippe "fft" ein, erhalte ich die Meldung in Bild octave1.jpg. Die Funktion "fft" wurde also gefunden, aber es wird natürlich die Aufrufsyntax bemängelt. Starte ich Octave wieder über das Icon, und versuche in mein Arbeitsverzeichnis unter "C:\Dokumente und Einstellungen\..." zu wechseln, erhalte ich die Meldung in octave2.jpg. Aber eigentlich möchte ich Octave aus meinem Arbeitsberzeichnis "C:\Dokumente und Einstellungen\..." heraus mit eine *.bat starten. Denn es soll eine dort liegende Datei einlesen und die FFT darauf ausführen. Tippe ich so aber "fft" ein, erhalte ich die Meldung in octave3.jpg. Für mich sieht das im Moment so aus, als ob Octave nicht mit Pfadnamen umgehen kann, in denen Leerzeichen enthalten sind. Gibt es dafür eine Lösung? Wenn nicht, ist Octave unter Windows nur sehr eingeschränkt nutzbar. Natürlich könnte ich ein Verzeichnis ohnne Leerzeichen anlegen, und darin mit Octave arbeiten. Aber normalerweise liegen die eignen Dateien unter "C:\Dokumente und Einstellungen\...", und daran würde ich mich gerne halten. Betriebssystem: Windows XP Servicepack 3 Octave: Octave_3.2.0_gcc-4.3.0
ich kenne leider Octave nicht, habe nicht mal eine Ahnung was es macht. Aber die Fehlermeldung klingt mehr danach das er mit dem \ nicht klar kommt. Verwende doch einfach mal ein "/". Windows kommt damit auch klar.
Octave ist ein numerisches Mathematikprogramm, das weitestgehend kompatibel zu MATLAB ist. Ich habe gerade folgendes versucht. Erst starten von Octave mit dem Icon und dann wechseln in das Verzeivhnis c:\Temp. Das ging klar. Entsprechend der Meldung in octave4.jpg scheint auch "fft" noch gefunden zu werden. Damit scheint es für mich, nach wie vor mit Pfaden mit Leerzeichen nicht klar zu kommen.
Nur nochmal als Nachtrag! Ich kann Octave mit einer *.bat aus meinem Arbeitsverzeichnis heraus starten und auch die Daten einlesen. M = load('file.m'); y = M(:,2); In disem Fall wird aber anscheinend die Funktion "fft" nicht gefunden.
Also ich sehe da keine Fehlermeldung, dass die Funktion fft nicht gefunden wird. Ich sehe nur eine Fehlermeldung, dass du die Funktion fft falsch benutzt.
Erstmal, Danke für Eure Antworten! @Peter: Die Verwendung des slashs ist besser als der backslash, da hast Du recht. @Timo: Mit dem konkreten Befehlen möchte ich Dir zeigen das ich fft() nicht falsch benutze. 1) Ich starte Octave mit dem während der Installation angelegten Icon, und tippe die folgen Befehle ein. In diesem Fall wird das Spektrum geplottet. load "C:/Dokumente und Einstellungen/woehlb/Eigene Dateien/Projekte/numerik/sw_fft/octave/rechteck.dat" y = rechteck(:,2); n = length(y); Y = abs(fftshift(fft(y))); f = [0:n-1]; stem(f,Y); 2) Ich starte Octave über das selbe Icon und wechsle mit cd ""C:/Dokumente und Einstellungen/woehlb/Eigene Dateien/Projekte/numerik/sw_fft/octave" in das Verzeichnis in dem die Datei rechteck.dat liegt. Danach tippe ich die folgenden Befehle ein. load "rechteck.dat" y = rechteck(:,2); n = length(y); Y = abs(fftshift(fft(y))); Nach dem letzten Befehl erhalte ich die folgende Meldungen. > cd "C:/Dokumente und Einstellungen/woehlb/Eigene Dateien/Projekte/numerik/sw_fft/octave" octave-3.2.0.exe:2:~\Eigene Dateien\Projekte\numerik\sw_fft\octave > load "rechteck.dat" octave-3.2.0.exe:3:~\Eigene Dateien\Projekte\numerik\sw_fft\octave > y = rechteck(:,2); octave-3.2.0.exe:4:~\Eigene Dateien\Projekte\numerik\sw_fft\octave > n = length(y); octave-3.2.0.exe:5:~\Eigene Dateien\Projekte\numerik\sw_fft\octave > Y = abs(fftshift(fft(y))); error: invalid use of script in index expression error: evaluating argument list element number 1 error: evaluating argument list element number 1 error: evaluating argument list element number 1 error: evaluating argument list element number 1 octave-3.2.0.exe:5:~\Eigene Dateien\Projekte\numerik\sw_fft\octave > Warum ist das so? Ich finde dafür keine Lösung.
Nur nochmal zur Erinnerung! Ich arbeite mit Octave unter Windows XP und nicht unter Linux.
Erstens hasttest du in deinen ganzen Screenshots "fft" nie mit einem Parameter aufgerufen, dann kann es sowieso schon mal nicht klappen, und zweitens bin ich mir nicht sicher, ob die anderen beiden Parameter wirklich wie in Matlab optional sind (es ist schon eine ganze Zeit her, dass ich was mit Octave gemacht habe): Probier doch mal ein Minimalbeispiel ohne Schnickschnack wie abs() und fftshift(), dafür aber mit allen drei geforderten Parametern.
@Timo: Du hast aber schon gesehen, daß im ersten Fall das Spektrum geplottet wurde? Normalerweise sollte es doch nicht passieren, daß alleine durch das Wechseln des Arbeitsverzeichnisses eine Funktion anders behandelt wird. Ist es also eventuell so, daß die native Windowsversion von Octave intern Probleme mit den Windows Pfadnamen hat? Damit meine ich nicht Pfadnamen die in Skripte verwendet werden, sondern die interne Behandlung der Pfadnamen in Octave, um die eigenen Bestandteile zu finden. Ich werde jetzt jedenfalls mal die Cygwin-Version ausprobieren. Mal sehen, ob Octave in einer "Linuxumgebung" problemloser ist.
>Du hast aber schon gesehen, daß im ersten Fall das Spektrum geplottet >wurde? Nö, ich lade mir keine zip Datei runter und entpacke sie, wenn in vier Beiträgen danach Screenshots sind.
@Timo: Dann schau einfach in meinen Beitrag vom 17.07.2009 20:12. Dort steht alles innerhalb des normalen Textes!
Die Cygwin-Version habe ich doch noch nicht getestet. Ok, jetzt funktioniert es. Ich habe die folgende start.bat in meinem Arbeitsverzeichnis angelegt. Dabei ist es anscheined wichtig, das Octave mit "octave" und nicht mit "octave-3.2.0.exe" wie im Octave-Icon aufgerufen wird. start.bat: ---------- octave Im Arbeitsverzeichnis habe ich das Skript myfft.m angelegt. myfft.m: -------- load "rechteck.dat" y = rechteck(:,2); n = length(y); Y = abs(fft(y,n,1))/n; f = [0:n-1]; stem(f,Y); Im Octavefenster rufe ich das Skript mit myfft auf, und das Spektrum wird geplottet.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.