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

Fehlermeldung: Index exceeds the number of array elements (1

 

Sabrina123
Forum-Anfänger

Forum-Anfänger


Beiträge: 10
Anmeldedatum: 13.03.20
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 26.03.2020, 12:00     Titel: Fehlermeldung: Index exceeds the number of array elements (1
  Antworten mit Zitat      
Hallo zusammen,
ich habe ein Problem bei der Herstellung von einer Gui.
Ich möchte Daten einlesen und habe das mit dem Befehl uigetfile gemacht und kann dann meine entsprechende .txt Datei auswählen. Allerdings bekomme ich dann für den weiteren Code eine Fehlermeldung. Der Fehlercode lautet: "Index exceeds the number of array elements (1)"

Code:

function DatenauswhlenButtonPushed(app, event)
            file=uigetfile
           
            t = file(:,1);     % Verweildauer [h]
            H = file(:,2);     % Absolute Häufigkeit []

            Hges = sum(H);
   
            t0 = 300;                       % Abschneiden der Reihe bei plausibler Zeit t0
       
            t = t(1:t0);
            H = H(1:t0);
            h = H/sum(H);                   % Berechnung relative Häufigkeit
       
            plot(app.UIAxes,t,h)
 


Die Fehlermeldung erscheint bei t=(1:t0).

Vielen Dank im voraus
Private Nachricht senden Benutzer-Profile anzeigen


Harald
Forum-Meister

Forum-Meister


Beiträge: 24.448
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 26.03.2020, 12:02     Titel:
  Antworten mit Zitat      
Hallo,

uigetfile wählt die Datei nur aus, d.h. du bekommst den Dateinamen zurück. Danach musst du die Datei noch einlesen.
Solche Probleme sollten im Debugging-Modus schnell erkennbar sein.

Grüße,
Harald
_________________

1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
Private Nachricht senden Benutzer-Profile anzeigen
 
Sabrina123
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 10
Anmeldedatum: 13.03.20
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 26.03.2020, 12:45     Titel:
  Antworten mit Zitat      
Hallo Harald,
vielen Dank für deine schnelle Antwort!
Ich bin ein relativer Matlab-Neuling, also sorry für die Fragerei...

Wenn ich dann
Code:


bekomme ich wieder eine Fehlermeldung. Wie kann ich die Datei einlesen, sodass ich dann mit dieser weiterarbeiten kann?

Vielen Dank und viele Grüße
Sabrina
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.448
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 26.03.2020, 12:48     Titel:
  Antworten mit Zitat      
Hallo,

welche Fehlermeldung?
load ist nicht zum Import von Textdateien gedacht. Dafür würde ich Befehle wie readtable oder readmatrix verwenden.
Für Neulinge kann das MATLAB Onramp sehr hilfreich sein.

Grüße,
Harald
_________________

1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
Private Nachricht senden Benutzer-Profile anzeigen
 
Sabrina123
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 10
Anmeldedatum: 13.03.20
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 26.03.2020, 13:05     Titel:
  Antworten mit Zitat      
Okay danke.
Ich dachte nur weil ich im normalen Code mit load gearbeitet habe kann ich das auch in der GUI machen.

Wenn ich jetzt allerdings mit readtable oder aber auch mit readmatrix arbeite bekomme ich die gleiche Fehlermeldung vom Anfang an der selben Stelle:
Index exceeds the number of array elements (1).

Code:
function DatenauswhlenButtonPushed(app, event)
          file=uigetfile
            readtable(file)  
           
            t = file(:,1);     % Verweildauer [h]
            H = file(:,2);     % Absolute Häufigkeit []

            Hges = sum(H);
   
            t0 = 300;                       % Abschneiden der Reihe bei plausibler Zeit t0
       
            t = t(1:t0);
            H = H(1:t0);
            h = H/sum(H);                   % Berechnung relative Häufigkeit
            plot(app.UIAxes,t,h)
        end


Danke
Sabrina
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


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

du musst dir von readtable schon was zurückgeben lassen und dann auch mit der Variable weiter arbeiten.

Code:
fileContent =  readtable(file)  
           
t = fileContent{:,1};     % Verweildauer [h]
H = fileContent{:,2};     % Absolute Häufigkeit []


Grüße,
Harald
_________________

1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
Private Nachricht senden Benutzer-Profile anzeigen
 
Sabrina123
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 10
Anmeldedatum: 13.03.20
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 26.03.2020, 13:22     Titel:
  Antworten mit Zitat      
Super vielen vielen Dank!
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen



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