WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Fehler bei xlabel/ylabel > Index exceeds matrix dimension

 

Gast



Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 22.02.2009, 23:20     Titel:
  Antworten mit Zitat      
MrSnoot hat Folgendes geschrieben:
Hi,

in thermo.mat sind lediglich Wertetabellen: temp, tempir, tempuv (Beispieltabelle im Anhang).


Deine Befehle liefern:

Zitat:
>> whos
Name Size Bytes Class Attributes

temp 3343x17 454648 double
tempir 3758x17 511088 double
tempuv 4004x17 544544 double

>>


Nur um nochmal sicher zu sein:
Du hast (zu keinem Zeitpunkt) keine Variablen xlabel und/oder ylabel im Workspace?


MrSnoot
Themenstarter

Forum-Anfänger

Forum-Anfänger



Beiträge: 17
Anmeldedatum: 16.02.09
Wohnort: Dresden
Version: R2007b
     Beitrag Verfasst am: 22.02.2009, 23:41     Titel:
  Antworten mit Zitat      
Nur:

daten
zeile
x
y
Private Nachricht senden Benutzer-Profile anzeigen
 
Gast



Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 22.02.2009, 23:46     Titel:
  Antworten mit Zitat      
Ja, aber oben hast du doch was von tempir und tempuv geschrieben...
Ehrlich gesagt traue ich deinen Angaben nicht so besonders weit.
Kannst Du vielleicht mal alle benötigten Dateien ich ein zip-File packen und hier hochladen? Wie gesagt kannst du ja mit rand auch Daten erzeugen, wenn du die Orginaldaten nicht preisgeben möchtest. Wichtig ist nur dass alles ausführbar ist und bei dir der Fehler auftritt.
 
MrSnoot
Themenstarter

Forum-Anfänger

Forum-Anfänger



Beiträge: 17
Anmeldedatum: 16.02.09
Wohnort: Dresden
Version: R2007b
     Beitrag Verfasst am: 23.02.2009, 00:14     Titel:
  Antworten mit Zitat      
Ja, sind halt neben temp noch zwei weitere Wertetabellen, ändert aber am Fehler nichts.

thermo.zip
 Beschreibung:

Download
 Dateiname:  thermo.zip
 Dateigröße:  11.29 KB
 Heruntergeladen:  611 mal
Private Nachricht senden Benutzer-Profile anzeigen
 
Gast



Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 23.02.2009, 00:39     Titel:
  Antworten mit Zitat      
Also ich seh da keine zwei weiteren Wertetabellen, dafür hab ich da eine weitere Variable temp im Workspace. Wenn du solche falschen Angaben machst wird die Fehlersuche schwierig. Einen Fehler bekomme ich wie zu erwarten war nicht.
Sind das wirklich die Daten und Dateien die du auch benutzt? Oder läuft das ganze in einem größeren Programm?
 
MrSnoot
Themenstarter

Forum-Anfänger

Forum-Anfänger



Beiträge: 17
Anmeldedatum: 16.02.09
Wohnort: Dresden
Version: R2007b
     Beitrag Verfasst am: 23.02.2009, 00:52     Titel:
  Antworten mit Zitat      
temp ist doch die importierte Datentabelle - du kannst sie gerne kopieren und jeweils in tempir und tempuv umbenennen (sind genau so aufgebaut wie temp, nur mit anderen Werten)

MrSnoot hat Folgendes geschrieben:
Fakt ist: ich habe obigen Code - so wie er da steht. Nehme ich die Achsenbeschriftung mit rein, kommt der Fehler. Die geladene thermo mat entält nur die temp.txt, welche als tab-getrennte Daten importiert wurde.


Das ist der gesamt Code, ich habe nichts weiter reingeschrieben - mehr als dasbrauche ich ja auch gar nicht. Abgesehn, von den noch fehlenden Achsenbeschriftungen.
Private Nachricht senden Benutzer-Profile anzeigen
 
Gast



Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 23.02.2009, 01:16     Titel:
  Antworten mit Zitat      
MrSnoot hat Folgendes geschrieben:
temp ist doch die importierte Datentabelle - du kannst sie gerne kopieren und jeweils in tempir und tempuv umbenennen (sind genau so aufgebaut wie temp, nur mit anderen Werten)

Es geht doch darum, dass ein Programm, von dem du sagst es liefere einen Fehler, bei mir andere Variablen anlegt als bei dir. Ich kann halt den Fehler nicht so nicht reproduzieren.
Ich kann ihn reproduzieren falls eben xlabel oder ylabel zuvor als Variablen deklariert wurden:
Code:
clear all;
xlabel=1;
plot(rand(1,10));
xlabel('X-Achse') % xlabel ist jetzt eine Variable;


So funktioniert es bei mir:
Code:
clear all;
load thermo.mat;
daten = temp; %tempir %tempuv
zeile = 300;
x = (1:zeile)';
y = daten(1:zeile,9);
plot(x,y)
xlabel('x-Achse');
ylabel('y-Achse');
grid on


Ich gebe hier auf...
 
MrSnoot
Themenstarter

Forum-Anfänger

Forum-Anfänger



Beiträge: 17
Anmeldedatum: 16.02.09
Wohnort: Dresden
Version: R2007b
     Beitrag Verfasst am: 23.02.2009, 11:24     Titel:
  Antworten mit Zitat      
Hier in der Arbeit läufts jedenfalls auch korrekt; mit den Dateien, die ich von zu Hause hier hochgeladen hatte ...

Ich speicher das hier als neue Dateien, schicks mir heim und lass mich überraschen Very Happy


Zu den Variablen, die ich vorher genannt hatte (daten, zeile, x, y) kommt halt noch temp für die Wertetabelle (tempir und tempuv sind identisch zu temp. Ob sie in der .mat mit auftauchen oder nicht, ändert am Fehler nichts; im Script werden sie auch nicht benutzt). Andere Variablen habe ich nicht.


edit: so, also es läuft jetzt auch auf meinem Rechner zu Hause. Ich habe ggü. gestern aber nichts geändert ...

Verstehe einer Matlab; letztens wollte Matlab auch immer auf eine Datei zugreifen, die ich Stunden vorher mal eingebunden, dann aber ersetzt hatte und nirgends mehr ein Verweis auf die Datei vorhanden war. Auch hier lief am nächsten Tag alles ganz normal (Matlab wurde zwischendurch aber auch mehrmals neu gestartet)...

Trotzdem vielen Dank für deine Geduld Smile
Private Nachricht senden Benutzer-Profile anzeigen
 
Predel
Forum-Newbie

Forum-Newbie


Beiträge: 1
Anmeldedatum: 12.07.12
Wohnort: ---
Version: R2012a
     Beitrag Verfasst am: 12.07.2012, 20:07     Titel:
  Antworten mit Zitat      
Hallo,

ich hatte gerade den selben Fehler und bin nach längerem Unverständnis drauf gekommen, warum dieser Error (zumindest bei mir) kommt:

ursprünglich wollte ich meine Achsen beschriften mit:

Code:

xlabel=('blabla')
ylabel=('dada')
 


und habe damit dummerweise zwei Variablen mit Namen xlabel/ylabel erzeugt.

Da ich den Workspace nicht geleert hatte, kam bei jedem folgenden (korrigierten) Programmablauf

Code:

xlabel('blabla')
ylabel('dada')
 


der Fehler: Index exceeds matrix dimensions.
Private Nachricht senden Benutzer-Profile anzeigen
 
Seer
Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 53
Anmeldedatum: 23.04.12
Wohnort: ---
Version: 7.14.0.739
     Beitrag Verfasst am: 13.07.2012, 09:29     Titel:
  Antworten mit Zitat      
Predel hat Folgendes geschrieben:

Da ich den Workspace nicht geleert hatte, kam bei jedem folgenden (korrigierten) Programmablauf


Aus diesem Grund ist es oft sinnvoll, wenn die ersten drei Zeilen des Hauptfiles lauten:

Code:
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.499
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 13.07.2012, 10:59     Titel:
  Antworten mit Zitat      
Hallo,

es ist sicher sinnvoll, seinen Workspace immer mal wieder zu leeren.

Insbesondere sind Fehlermeldung bzgl. Indizierung, wenn man eigentlich einen Funktionsaufruf beabsichtigt, oft ein Hinweis darauf, dass es eine Variable gibt, ddie die Funktion überlagert.

Ich würde jedoch davon abraten, immer clear all an den Anfang eines Skripts zu schreiben. Grund: wenn man ein Skript mehrfach laufen lässt, ist es bei den folgenden Aufrufen typischerweise schneller, da z.B. Funktionen schon in den Speicher geladen worden sind. Diesen Vorteil nimmt man sich durch ein clear all.

Ich habe mir eine Shortcut mit den drei Befehlen angelegt. Wenn ich "von vorne anfangen" oder "alles loswerden" will, klicke ich auf die Shortcut.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Seer
Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 53
Anmeldedatum: 23.04.12
Wohnort: ---
Version: 7.14.0.739
     Beitrag Verfasst am: 13.07.2012, 11:21     Titel:
  Antworten mit Zitat      
Harald hat Folgendes geschrieben:
Ich würde jedoch davon abraten, immer clear all an den Anfang eines Skripts zu schreiben. Grund: wenn man ein Skript mehrfach laufen lässt, ist es bei den folgenden Aufrufen typischerweise schneller, da z.B. Funktionen schon in den Speicher geladen worden sind. Diesen Vorteil nimmt man sich durch ein clear all.


Gibt es Fälle wo der Effekt nennenswerte Größenordungen hat? Ich habe es gerade mal bei meinem aktuellen Projekt getestet: Mit "clear all" liegt die Laufzeit bei 25.86 Sekunden, ohne bei 25.37.
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.499
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 13.07.2012, 13:07     Titel:
  Antworten mit Zitat      
Hallo,

der Effekt dürfte um so stärker werden, je mehr kleine Funktionen aufgerufen werden. Mir ist jedoch kein Beispiel bekannt, wo das mehr als 1 Sekunde ausmacht und im Verhältnis zur gesamten Ausführungszeit signifikant ist.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 16.07.2012, 12:31     Titel:
  Antworten mit Zitat      
Hallo Harald,

Ich habe ein Programm, welches 200'000 Zeilen Code auf etwa 1200 M- und Mex-Files verteilt aufruft. Ein umfangreiches (händisch programmiertes, kein GUIDE) GUI mit etwa 7000 Zeilen steuert das Programm.
Nach "clear all" benötigt das Öffens des GUIs 3.2 Sekunden, alle nachfolgenden Starts benötigen nur 1.2 Sekunden. Das Programm selbst läuft nach "clear all" in 4.5 Sekunden, danach in 3.2 Sekunden.

Die Verzögerung wird deutliche größer, wenn man die M-Files auf in einem Netzwerk-Ordner lagert, damit man beim Arbeiten in einer Arbeitsgruppe mit 12 Mitgliedern die Instandhaltungsarbeiten nur einmal zentral erledigen muss.

Zudem bremst "clear all" aus, wenn man mehrere Verwaltungs-Funktionen benötigt, die irgendwelche Preferences-Files einlesen und aus Laufzeitgründen als PERSISTENT speichern.

Deshalb vermeide ich "clear all" grundsätzlich. Selbst "clear variables" verwende ich niemals, sondern verwende zum Debuggen einen Test auf die Existenz unerwarteter Variablen um Bugs aufzudecken.

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen

Gehe zu Seite Zurück  1, 2

Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

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 | goMatlab RSS Button 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.