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

array in GUI laden

 

bc-racing
Forum-Newbie

Forum-Newbie


Beiträge: 2
Anmeldedatum: 15.05.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 15.05.2013, 15:58     Titel: array in GUI laden
  Antworten mit Zitat      
Hallo Leute,

ich bin völliger Neuling was die Programmierung eines GUI in Matlab angeht, deshalb entschuldige ich mich bereits jetzt für die dumme frage.

Ich versuche verzweifelt auf ein in Simulink erstelltes Array, welches sich im Workspace befindet zuzugreifen, besser gesagt auf das letzte Element dieses Array's. Leider bekomme ich aber immer folgende Fehlermeldung:

Attempted to access q(0); index must be a positive integer or logical.

der Code in der Callback-Funktion dazu siet folgendermaßen aus:

Code:
global q
l=q(length(q));
set(handles.textbox1,'string',l)


Leider verstehe ich die ganze Sache nicht, da ich doch nicht vefrsuche auf das Element q(0) zuzugreifen.
Im Command-Window funtioniert die Funktion allerdings.

Vielen dank schonmal im voraus

Seb.
Private Nachricht senden Benutzer-Profile anzeigen


denny
Supporter

Supporter



Beiträge: 3.853
Anmeldedatum: 14.02.08
Wohnort: Ulm
Version: R2012b
     Beitrag Verfasst am: 15.05.2013, 17:25     Titel:
  Antworten mit Zitat      
Hallo
ja weil q leer ist, deshalb ist die Länge des Array gleich Null.
Hast du denn q auch in Workspace global definiert?
Statt globalen Variablen ist das besser SETAPPDATA/GETAPPDATA zu verwenden.
Private Nachricht senden Benutzer-Profile anzeigen
 
bc-racing
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 2
Anmeldedatum: 15.05.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 16.05.2013, 08:51     Titel:
  Antworten mit Zitat      
Hallo,

ja, die Variable q ist im Workspace definiert und stammt aus einer Simulink-Simulation, welche die Variable q als Array im Workspace speichert.

Ebenso hat das Array nach der Simulation eine länge von ca. 18000 Werten, weshalb ich die fehlermeldung nicht verstehe.

Gruß
//Seb.
Private Nachricht senden Benutzer-Profile anzeigen
 
denny
Supporter

Supporter



Beiträge: 3.853
Anmeldedatum: 14.02.08
Wohnort: Ulm
Version: R2012b
     Beitrag Verfasst am: 16.05.2013, 11:26     Titel:
  Antworten mit Zitat      
Hallo

Das heißt aber noch nicht dass die Variable GLOBAL ist.
tippe WHOS in deinem Workspace, hat denn diese Variable Attribute GLOBAL
Code:
>> whos
  Name      Size            Bytes  Class     Attributes

  ans       1x33               66  char                
  q         0x0                 0  double    global    



Zitat:
Ebenso hat das Array nach der Simulation eine länge von ca. 18000 Werten, weshalb ich die Fehlermeldung nicht verstehe.

Globale Variable haben ihren eigenen Workspace.
Um eine Variable Global verfügbar zu machen, muss diese vorher als GLOABAL deklariert werden und zwar überall wo man auf diese Variable zugreifen möchte .
Beispiel
Code:


% Das steht z.B in Base-Workspace
% in Global Workspace is nur a
% b ist eine lokale Varaibel in Base-Workspace
global a;
a = 10;
b = 10;

% Das sind z. B. Callback Funktionen

% GLOBALE Variable a wird verändert
function mutate1()
global a;
a = 15

% keine Auswirkung auf GLOBALE  Variable
function mutate2()
% a ist lokale Variable in dieser Funktion
a = 20

% keine Auswirkung auf Lokale Variable b in Base Workspace
function mutate3()
% da Variable b noch nicht in Global Workpace existiert, wird eine neue
% Variable b angelegt
global b
% jetzt ist der Wert von b ist [] und hat die Länge 0
% wenn ich hier die b verändere, hat das keine Auswirkung auf b von oben

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