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

handle-name in Variable --> set

 

balli1187
Forum-Anfänger

Forum-Anfänger


Beiträge: 26
Anmeldedatum: 15.06.12
Wohnort: Magdeburg
Version: 2007b
     Beitrag Verfasst am: 08.04.2014, 13:05     Titel: handle-name in Variable --> set
  Antworten mit Zitat      
hallo Forum,

ich hoffe mein Titel lässt einigermaßen erahnen was ich möchte....

ich habe 12 Radio-Button in meiner Gui, welche im Namen durchnummeriert sind. zusätzlich habe ich einen Vektor mit 12 Elementen (Werte=0 oder 1) und möchte den Value der Radio-Button nun auf die Werte in dem Vektor setzen.

um nicht jeden einzeln zu setzen, wollte ich das in einer kleinen for-Schleife machen

Code:
for i=1:1:12
    str=['handles.Bal_', num2str(i, '%1.0f')];   %Name der Button: Bal_1 .... Bal_12
    set(str, 'Value', balance(i,1));
end

leider bekomme ich hier einen Fehler
Code:
Error using ==> set
Value must be a handle.


ich hoffe es kann mir jemand helfen.

Grüße, Stephan
Private Nachricht senden Benutzer-Profile anzeigen


denny
Supporter

Supporter



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

benutze dynamische Feldernamen:
Code:

for i=1:1:12
    str=['Bal_', num2str(i)];   %Name der Button: Bal_1 .... Bal_12
    set(handles.(str), 'Value', balance(i,1));
end
 
Private Nachricht senden Benutzer-Profile anzeigen
 
balli1187
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 26
Anmeldedatum: 15.06.12
Wohnort: Magdeburg
Version: 2007b
     Beitrag Verfasst am: 08.04.2014, 16:34     Titel:
  Antworten mit Zitat      
Besten danke!
So einfach ist es also, wenn man weiß was man suchen muss Wink

Gruß, Stephan
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: 10.04.2014, 07:56     Titel:
  Antworten mit Zitat      
Hallo balli1187,

Noch einfacher wäre es, wenn die Felder keine kryptischen Namen hätten, bei denen ein Index im Namen versteckt ist. Wenn man stattdessen ein Array erstellt, wird der Zugriff noch einfacher:
Code:
for k = 1:12
    set(handles.Bal(k), 'Value', balance(i,1));
end

Die Dynamic Fieldnames sind zwar schnell und bergen kaum Risiko für Fehler (wie es z.B. EVAL tun würde), aber das ist eine perfekte Aufgabe für Arrays: Eine Gruppe von Elementen gleicher Bedeutung, auf die man sinnvoll per Index zugreifen kann.

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
balli1187
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 26
Anmeldedatum: 15.06.12
Wohnort: Magdeburg
Version: 2007b
     Beitrag Verfasst am: 10.04.2014, 09:12     Titel:
  Antworten mit Zitat      
Hallo Jan,

danke für den Hinweiß! Es war mir nicht bewußt, dass man GUI-Objekte (in dem Fall Radio-Button) in einem Array anlegen kann....
Vom logischen hast du selbstverständlich vollkommen recht - es schreit geradzu nach einem Array.

Wieder was gelernt Wink

Grüße, Stephan
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.