Octave unter Windows XP

OP #1337545
Lesenswert?

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 #1337556
Lesenswert?

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 #1337563
Lesenswert?

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 #1338473
Lesenswert?

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 #1338579
Lesenswert?

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 #1342106
Lesenswert?

@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.
OP #1342765
Lesenswert?

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

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren