|
|
| tolau100 |

Forum-Anfänger
|
 |
Beiträge: 13
|
 |
|
 |
Anmeldedatum: 27.10.10
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 05.03.2012, 11:04
Titel: Fehler bei std(x)
|
 |
| |
 |
|
Hallo zusammen,
erst einmal hoffe ich, halbwegs das richtige Board erwischt zu haben und niemanden aufgrund mangelnder Suchfähigkeit hier unnötig zu beanspruchen.
Ich habe seit kurzem folgendes Problem:
Nutze ich std(x) in einer function, wird der Befehl richtig ausgeführt. Nutze ich jedoch std(x) im Command Window, erscheint eine Fehlermeldung alá
"??? Subscript indices must either be real positive integers
or logicals".
Zur Verdeutlichung: Angenommen, die Variable "x" mit der Größe 7x2 befindet sich in meinem Workspace. Gebe ich im Command Window std(x) ein, erscheint die genannte Fehlermeldung. Schreibe ich die Funktion
function out = Untitled3(in)
out = std(in);
end
und gebe "Untitled3(x)" ins Command Window ein, wird alles korrekt berechnet.
Es scheint mir, als hätte sich irgendwo eine fehlerhafte/andere "std.m"-Version irgendwo eingeschlichen. Habe auch verschiedene "std.m" in manchen Toolboxen gefunden. Merkwürdig ist das ganze allerdings deshalb, weil
a) std(x) innerhalb einer function offenbar richtig zugewiesen wird
b) der SearchPath zuerst auf meinen Skripte-Ordner eingestellt ist und ich dort sowie im aktuellen Ordner die "richtige" std.m (y = sqrt(var(varargin{:})) angegeben habe.
Daher folgende Fragen:
(1) Inwiefern unterscheidet sich der searchpath innerhalb einer function? Denn dort scheint auf die richtige Version verwiesen zu werden
(2) Wie kann ich wieder auf den "richtigen" Pfad auch im Command-Window verweisen? Natürlich könnte ich mir einfach eine "std_new.m" nach dem Kurzbeispiel oben anlegen, allerdings würde ich doch auch ganz gerne im Command Window wieder std(x) nutzen können..
Wäre super, wenn mir jemand helfen könnte, das nervt nämlich gerade schon ziemlich.. Änderungen (neu installierte Toolboxen o.ä.) wurden seit dem letzten Funktionieren nicht durchgeführt. Ich nutze Matlab version 2008a
LG und besten Dank im Voraus,
tolau
|
|
|
|
|
|
| Harald |

Forum-Meister
|
 |
Beiträge: 24.502
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 05.03.2012, 11:11
Titel:
|
 |
Hallo,
das Problem ist sehr wahrscheinlich, dass du eine Variable std angelegt hast und diese Variable die Funktion std überlagert. Probier mal
Abhilfe wäre in dem Fall, die Variable std umzubenennen bzw. zu löschen.
(Dieses Verhalten ist übrigens nicht spezifisch für std, sondern kann bei jeglichen Funktionen auftreten)
Grüße,
Harald
|
|
|
|
| tolau100 |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 13
|
 |
|
 |
Anmeldedatum: 27.10.10
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 05.03.2012, 12:25
Titel:
|
 |
..Manchmal kann es doch recht einfach sein. Besten Dank für den Tipp. Kommt davon, wenn man fremde .mat-files nicht näher nach den Variablennamen durchforstet. Hätte es einfach mit 'nem anderen .mat-file nochmal testen sollen, hatte leider nur einzelne Variablen aus diesem .mat-file zu Testzwecken herangezogen.
Hatte auch nicht gedacht, dass es funktionsspezifisch ist, mir viel nur kein besserer Kurztitel für das Problem ein ). Hatte eher gedacht, es läge irgendwo am Workspace. Nun gut, nochmal vielen Dank für die schnelle Hilfe.
LG,
tolau
|
|
|
|
| Harald |

Forum-Meister
|
 |
Beiträge: 24.502
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 05.03.2012, 12:34
Titel:
|
 |
Hallo,
wenn man einen Funktionsaufruf beabsichtigt und eine Fehlermeldung bezüglich Indizierung erhält, weist das generell auf dieses Problem hin.
Ich würde denjenigen, von dem du das .mat-File hast, auch auf diese Problematik hinweisen. Es kann gut sein, dass du nicht der einzige bist, der in dieses Problem läuft.
Eine Möglichkeit, solche Probleme von vorneherein zu umgehen, ist, den Inhalt des .mat-Files in eine Struktur zu laden und mit dieser zu arbeiten:
Grüße,
Harald
|
|
|
|
| tolau100 |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 13
|
 |
|
 |
Anmeldedatum: 27.10.10
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 05.03.2012, 12:42
Titel:
|
 |
..Ein "Dankesschreiben" ist bereits an den Urheber versendet. Deine weitergehende Lösung klingt sehr sinnvoll. So umgehe ich ähnliche Probleme bei künftigen .mats.
Dass die Fehlermeldung Sinn macht, ist mir im Nachhinein auch aufgefallen. Da mangelt's dann offensichtlich einfach noch an mangelnder Erfahrung, war einfach auf dem falschen Dampfer. Irritierend war zudem, dass ich bei einer testweisen Berechnung ein richtiges Ergebnise erhielt, was allerdings auf dem komischen Zufall beruhte, dass die Beispielzahlen als Index interpretiert zufällig zu Zahlen in der Matrix std verwiesen, die das "richtige" Ergebnis für die Zufallszahlen enthielten.
Naja, immerhin wieder um einiges klüger. Nochmal besten Dank.
LG,
tolau
|
|
|
|
|
|
|
Einstellungen und Berechtigungen
|
|
Du kannst Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen. Du kannst Dateien in diesem Forum posten Du kannst Dateien in diesem Forum herunterladen
|
|
Impressum
| Nutzungsbedingungen
| Datenschutz
| FAQ
| RSS
Hosted by:
Copyright © 2007 - 2025
goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks
MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.
|
|