Forum: PC Hard- und Software Octave unter Windows XP


von Sven W. (woehlb)


Angehängte Dateien:

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

von Sven W. (woehlb)


Angehängte Dateien:

Lesenswert?

octave1.jpg

von Sven W. (woehlb)


Angehängte Dateien:

Lesenswert?

octave2.jpg

von Sven W. (woehlb)


Angehängte Dateien:

Lesenswert?

octave3.jpg

von Peter (Gast)


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.

von Sven W. (woehlb)


Angehängte Dateien:

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.

von Sven W. (woehlb)


Lesenswert?

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.

von Peter (Gast)


Lesenswert?

dann mach mal ein \ vor das leerzeichen (quoting)

von Timo (Gast)


Lesenswert?

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.

von Sven W. (woehlb)


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.

von Sven W. (woehlb)


Lesenswert?

Nur nochmal zur Erinnerung! Ich arbeite mit Octave unter Windows XP und 
nicht unter Linux.

von Timo (Gast)


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.

von Sven W. (woehlb)


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.

von Timo (Gast)


Lesenswert?

>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.

von Sven W. (woehlb)


Lesenswert?

@Timo:
Dann schau einfach in meinen Beitrag vom 17.07.2009 20:12. Dort steht 
alles innerhalb des normalen Textes!

von Sven W. (woehlb)


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.

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
Noch kein Account? Hier anmelden.