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

Matrix in GUI eingeben, speichern und Workspace übergeben

 

danysahne
Forum-Newbie

Forum-Newbie


Beiträge: 2
Anmeldedatum: 05.09.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 05.09.2012, 08:12     Titel: Matrix in GUI eingeben, speichern und Workspace übergeben
  Antworten mit Zitat      
Guten Morgen,

ich habe mir ein GUI erstellt, in der die Eingabe einer Matrix geschehen soll. Da die Größe der Matrix variabel sein soll, kann der Benutzer in einem Edit-Feld eingeben, wie groß die quadratische Matrix werden soll. Durch zwei for-Schleifen werden dann die gewünschte Anzahl an Edit-Feldern erzeugt.
Code:


matrix = str2num(get(handles.edit_groesse, 'String'));

    x_wert = 50  % Abstand zwischen den einzelnen Zellen
    y_wert = 30

  for i=1 :1: matrix
     
    for j=1 :1: matrix
       uicontrol('Style','edit','Position', [50+x_wert 500-y_wert 50.0 20.0],
       'String','0' );                  % Zellen werden erstellt und auf 0 gesetzt
        y_wert =y_wert+30      % Y-Wert wird für die nächste Zelle erhöht
    end
 x_wert = x_wert+55            %X-Wert wird erhöht
 y_wert = 30                        %Y-Wert wird wieder auf ersten Wert gesetzt
end

 


Das klappt soweit auch alles problemlos.
Jetzt soll der Benutzer in die Felder Werte eintragen und durch Drücken eines Buttons wird eine Matrix erstellt und dem Workspace für weitere Berchnungen zur Verfügung gestellt.
Leider weiß ich nicht, wie ich das nun umsetzen soll.
Könnt ihr mir dabei helfen?
Ich weiß z.B. nicht, wie der Tag der erstellten Edit-Felder lautet, damit man diese ansprechen und auslesen kann.

Vielen Dank im Voraus
Daniel
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: 05.09.2012, 09:27     Titel: Re: Matrix in GUI eingeben, speichern und Workspace übergeb
  Antworten mit Zitat      
Hallo danysahne,

Statt der Tags sind die Handles einfacher und effizienter:
Code:
matrix = str2num(get(handles.edit_groesse, 'String'));
x_wert = 50;  % Abstand zwischen den einzelnen Zellen
y_wert = 30;
editH = zeros(matrix, matrix);
for i = 1:matrix
   for j = 1:matrix
      editH(i,j) = uicontrol('Style','edit','Position', [50+x_wert 500-y_wert 50.0 20.0],
       'String','0' );                  % Zellen werden erstellt und auf 0 gesetzt
      y_wert =y_wert+30      % Y-Wert wird für die nächste Zelle erhöht
   end
   x_wert = x_wert+55;            %X-Wert wird erhöht
   y_wert = 30;                        %Y-Wert wird wieder auf ersten Wert gesetzt
end

Nun kannst Du "editH" z.B. in den UserData der Figure speichern, oder im "handles" Struct (siege GUIDATA()), oder in den ApplicationData. Zum Auslesen:
Code:
String = get(editH, 'String');

damit bekommst Du einen Cell String mit allen Werten. Die kannst Du dann z.B. in einer FOR-Schleife per SSCANF in Zahlen umwandeln.

Eine UITABLE wäre eine Alternative.

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

Forum-Newbie

Forum-Newbie


Beiträge: 2
Anmeldedatum: 05.09.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 06.09.2012, 13:01     Titel:
  Antworten mit Zitat      
Vielen Dank für die schnell und gut Antwort.
Nach einigem Rumprobieren habe ich das GUI so, wie ich es haben möchte.
Nochmals vielen Dank.

Gruß Daniel
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.