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

automatisch beliebige Anzahl Radiobuttons erzeugen

 

louja
Forum-Anfänger

Forum-Anfänger


Beiträge: 22
Anmeldedatum: 11.01.11
Wohnort: ---
Version: R2007b
     Beitrag Verfasst am: 11.01.2011, 16:01     Titel: automatisch beliebige Anzahl Radiobuttons erzeugen
  Antworten mit Zitat      
Hallo!

Ich bin ein Matlab-Anfänger und habe ein Problem:

Ich möchte checkbuttons erstellen. Ihre Anzahl ist vorher nicht festgelegt, sondern wird durch eine einzulesende Variable festgelegt.
Ist das überhaupt möglich?
Und wenn ja, wie?

Und btw, ich habe beim Matlab-Guide immer nur Radiobuttons gefunden.
Sind damit auch Checkbuttons gemeint? Man kann ja mehr als einen anklicken...

Liebe Grüße Very Happy
Private Nachricht senden Benutzer-Profile anzeigen


Marco H.
Forum-Guru

Forum-Guru


Beiträge: 404
Anmeldedatum: 12.11.10
Wohnort: Dortmund
Version: 2010a/2012b
     Beitrag Verfasst am: 11.01.2011, 18:02     Titel:
  Antworten mit Zitat      
Hallo und welcome louja,

Zitat:

ich habe beim Matlab-Guide immer nur Radiobuttons gefunden.

Also normalerweise solltest du checkboxen und radiobuttons zur verfügung haben.
Zitat:

Ist das überhaupt möglich?

Prinzipiell schon. Allerdings würde ich das nicht mit zig untereinander geschriebenen Checkboxen machen sondern mit einer uitable. Dort kannst du dann ein Columnformat als logical definieren...
Code:

f = figure('Position',[100 100 400 150]);
dat =  {'Nr 1',true,;...
        'Nr 2', false,;...  
        'Nr 3', false,};
columnname =   {'Name','Available'};
columnformat = {'Char','logical'};
columneditable =  [false true];
t = uitable('Units','normalized','Position',...
            [0.1 0.1 0.9 0.9], 'Data', dat,...
            'ColumnName', columnname,...
            'ColumnFormat', columnformat,...
            'ColumnEditable', columneditable,...
            'RowName',[]);
 

Du könntest dann je nach Anzahl deiner benötigten Checkboxen die Daten für die Tabelle anpassen...

MfG Marco
Private Nachricht senden Benutzer-Profile anzeigen
 
louja
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 22
Anmeldedatum: 11.01.11
Wohnort: ---
Version: R2007b
     Beitrag Verfasst am: 12.01.2011, 09:56     Titel:
  Antworten mit Zitat      
Hey!

Danke für die schnelle Antwort!
Leider habe ich ein Problem: Ich habe deinen Vorschlag gleich mal ausprobiert, aber eine Fehlermeldung erhalten.

??? Error using ==> uitable at 200
Unrecognized parameter: Units

Error in ==> test2 at 8
t = uitable('Units','normalized','Position',...

Dann habe ich es einfach im Command Window ausführen lassen, da kam diese Meldung:

??? Error using ==> uitable at 200
Unrecognized parameter: ColumnName

Dann wollte ich probieren, ob meine Matlab-Version (2007) überhaup eine uitable kennt (ich habe sie in der Hilfe nicht finden können), und folgendes gemacht:

>>t=uitable;
>> set(t,columnformat,{'Char','logical'})
??? There is no 'Char' property in the 'com.mathworks.hg.peer.UitablePeer' class.

Kannst du mir erklären, warum ich verschiedene Fehlermeldungen bekommen habe, und was nun eigentlich das Problem ist Question

Liebe Grüße
Private Nachricht senden Benutzer-Profile anzeigen
 
Marco H.
Forum-Guru

Forum-Guru


Beiträge: 404
Anmeldedatum: 12.11.10
Wohnort: Dortmund
Version: 2010a/2012b
     Beitrag Verfasst am: 12.01.2011, 10:40     Titel:
  Antworten mit Zitat      
Hey,

ja das liegt wohl daran, dass du die alte uitable in deiner Version hast, die ich glaube ich 2008 geändert wurde. Dementsprechend hast du bestimmte Properties nicht. Da ich gerade auf die schnelle keine so alte Version zur hand habe kann ich es nicht rekonstruieren (vll mit uitable('v0'), aber da bin ich mir auch nicht ganz sicher ob diese die gleiche ist wie bei dir)...

Alternativ kannst du deine Einträge in eine Listbox schreiben und dort entsprechende Einträge auswählen... (sofern du im GUIDE nicht irgendwie den Datentyp für deine Columns der uitable einstellen kannst)...

MfG Marco
Private Nachricht senden Benutzer-Profile anzeigen
 
louja
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 22
Anmeldedatum: 11.01.11
Wohnort: ---
Version: R2007b
     Beitrag Verfasst am: 12.01.2011, 10:50     Titel:
  Antworten mit Zitat      
Ok, danke für die Alternative.

Aber kann man in einer Listbox mehrere Dinge auswählen?
Die Idee meines Programms ist nämlich die:

Ich habe eine Variable, die angibt, wieviele Dinge vorhanden sind. Der Benutzer soll dann für jedes einzeln auswählen sollen, ob er es sich anzeigen lassen will oder nicht. Deshalb hatte ich gedacht, ich mache aus jedem Ding eine Checkbox, und wenn der Benutzer sie anklickt, lasse ich es anzeigen.

Kann ich das auch mit einer Listbox umsetzen?
(Ich weiß nicht genau, was eine Listbox überhaupt kann/macht...)

Liebe Grüße
Private Nachricht senden Benutzer-Profile anzeigen
 
Marco H.
Forum-Guru

Forum-Guru


Beiträge: 404
Anmeldedatum: 12.11.10
Wohnort: Dortmund
Version: 2010a/2012b
     Beitrag Verfasst am: 12.01.2011, 11:08     Titel:
  Antworten mit Zitat      
Hey,

ja du kannst mehrere Einträge in der Listbox auswählen. Dafür muss max-min > 1 sein

Code:

d = uicontrol('style','listbox','Max',2,'String',{'Nr1' 'Nr2' 'Nr3'},'Position',[20 20 100 100]);
 


MfG Marco
Private Nachricht senden Benutzer-Profile anzeigen
 
louja
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 22
Anmeldedatum: 11.01.11
Wohnort: ---
Version: R2007b
     Beitrag Verfasst am: 12.01.2011, 11:40     Titel:
  Antworten mit Zitat      
Danke, es funktioniert! Very Happy

Aber kannst du mir bitte noch verraten, wie ich die Länge von
'String',{'Nr1' 'Nr2' 'Nr3'}
mit meiner Variable umsetzten kann?

Liebe Grüße
Private Nachricht senden Benutzer-Profile anzeigen
 
Marco H.
Forum-Guru

Forum-Guru


Beiträge: 404
Anmeldedatum: 12.11.10
Wohnort: Dortmund
Version: 2010a/2012b
     Beitrag Verfasst am: 15.01.2011, 01:10     Titel:
  Antworten mit Zitat      
Hey,

falls es noch aktuell ist und natürlich vorausgesetzt ich habe dein Problem richtig verstanden dann versuche mal folgendes
Code:

e = arrayfun(@(x)sprintf('Nr.%.0f',x),1:DeineVariable,'UniformOutput',false);
d = uicontrol('style','listbox','Max',2,'String',e,'Position',[20 20 100 100]);
 


MfG Marco
Private Nachricht senden Benutzer-Profile anzeigen
 
louja
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 22
Anmeldedatum: 11.01.11
Wohnort: ---
Version: R2007b
     Beitrag Verfasst am: 16.02.2012, 20:37     Titel:
  Antworten mit Zitat      
Hallo,

ich dachte mir, ich sollte diesen Beitrag einmal beenden.

Danke für den Vorschlag, Marco.
Leider hatte ich zu der Zeit schon das Konzept des Programm vollkommen umgeändert und das Problem somit umgangen. Ansonsten hätte dein Beitrag mir sehr geholfen.

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