mikrocontroller.net

Forum: PC Hard- und Software Octave unter Windows XP


Autor: Sven Woehlbier (woehlb)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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

Autor: Sven Woehlbier (woehlb)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
octave1.jpg

Autor: Sven Woehlbier (woehlb)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
octave2.jpg

Autor: Sven Woehlbier (woehlb)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
octave3.jpg

Autor: Peter (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Sven Woehlbier (woehlb)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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.

Autor: Sven Woehlbier (woehlb)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Peter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
dann mach mal ein \ vor das leerzeichen (quoting)

Autor: Timo (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Sven Woehlbier (woehlb)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Sven Woehlbier (woehlb)
Datum:

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

Autor: Timo (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Sven Woehlbier (woehlb)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Timo (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Sven Woehlbier (woehlb)
Datum:

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

Autor: Sven Woehlbier (woehlb)
Datum:

Bewertung
0 lesenswert
nicht 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

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.