Octave unter Windows XP

OP #1337545
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
Angehängte Dateien:
Gast
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.
OP
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.
Angehängte Dateien:
OP
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.
Gast
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.
OP
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.
Gast
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.
OP
@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.
Gast
>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.
OP
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.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 17 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.