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

Tabelle in GUI aktualisieren

 

HHPatrick
Forum-Anfänger

Forum-Anfänger


Beiträge: 48
Anmeldedatum: 26.10.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 12.12.2012, 15:57     Titel: Tabelle in GUI aktualisieren
  Antworten mit Zitat      
Moin, ich muss noch ein mal stören.

Ich habe in meiner MainGUI eine Button der eine weitere GUI öffnet wo sich eine Tabelle mit Werten befindet. Die Werte stammen aus einer Matrix, die ich über den Property Inspector ausgewählt habe. Es gibt noch eine weitere GUI, mit der man die Werte in dieser Matrix ändern kann. Wenn ich dann aber später wieder auf den besagten Button klicke, öffnet sich nur die Tabelle mit den Werten der Matrix die am Anfang da waren, nicht die aktuellen.(Er überprüft nicht ob die Matrix verändert wurde)

Gibt es eine Möglichkeit Matlab zu sagen, das jedes mal wenn ich die GUI öffne, überprüft werden soll ob sie die Werte in der Matrix geändert haben und diese dann gegebenfalls in die Tabelle schreibt?

Es reicht ja ein Befehl, der der GUI sagt welche Daten in der Tabelle dargestellt werden soll aber selbst da finde ich nichts was funktioniert.

Vielen vielen Dank im Voraus Smile

Schöne Grüße

Patrick
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: 13.12.2012, 20:29     Titel:
  Antworten mit Zitat      
Hey,

wenn du deine GUI öffnest und nicht dafür sorgst, dass in der openingfcn deine Guielemente gesetzt werden, dann passiert da auch nix von alleine. Eine Uitable kann man mit z.B.
Code:

set(handles.uitable1,'Data',deinArray)
 

setzen. Das steht auch ausführlich in der Matlab Hilfe. Die Daten, die in der Tabelle angezeigt werden sollen kannst du der GUI beim Aufruf übergeben.
Code:

% guiaufruf
Deinegui(deinArray);

%in der openingfcn
set(handles.uitable1,'Data',verargen{1})
 


Greetings
Private Nachricht senden Benutzer-Profile anzeigen
 
HHPatrick
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 48
Anmeldedatum: 26.10.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 02.01.2013, 10:35     Titel:
  Antworten mit Zitat      
Marco H. hat Folgendes geschrieben:
Hey,

wenn du deine GUI öffnest und nicht dafür sorgst, dass in der openingfcn deine Guielemente gesetzt werden, dann passiert da auch nix von alleine. Eine Uitable kann man mit z.B.
Code:

set(handles.uitable1,'Data',deinArray)
 

setzen. Das steht auch ausführlich in der Matlab Hilfe. Die Daten, die in der Tabelle angezeigt werden sollen kannst du der GUI beim Aufruf übergeben.
Code:

% guiaufruf
Deinegui(deinArray);

%in der openingfcn
set(handles.uitable1,'Data',verargen{1})
 


Greetings


Hallo Marco, danke für den Tipp aber so kriege ich es nicht zum Laufen. Wenn ich den ersten Codeabschnitt in meine HauptGUI schreibe, gibt er mir den Fehler aus, dass uitable1 nicht vorhanden ist. Die wird ja auch nur nur erstellt wenn auf den Push-Button gedrückt wird, der die dann öffnet.
Es soll ja so sein, dass ich falls in dem Programm auf den Button gedrückt wird, Matlab sich die Daten aus der vorhandenen Matrix zieht und die dann in eine Tabelle schreibt, die dann in der zweiten GUI dargestellt wird. Ich hab den Code soweit, das ich nur noch der Tabelle sagen muss, nehm die aktuellen Werte aus der Matrix XYZ. Man kanns ja über "Guide" Manuell auswählen, welche Daten aus welcher Matrix kommen sollen, jedoch aktuallisiert matlab die Daten nicht.

Schöne Grüße

Patrick
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: 02.01.2013, 16:12     Titel:
  Antworten mit Zitat      
Hey,
Das mein angegebener Code zu einer Fehlermeldung führt ist klar, da ich nicht weiß wie du deine Objekte nennst (also den Tag). Uitable1 ist der standardmäßig den Guide bei seiner ersten Tabelle vorschlägt. Da musst du halt deinen Tag als Feldnamen einsetzen. In Guide setzt man immer nur den Anfangswert. Automatisch passiert hier nix...
Es wäre sicher hilfreicher wenn du hier ein beispielcode oder ein abgestecktes lauffähiges Programm postest indem man sehen kann was du bis jetzt gemacht hast...

Greetings
Private Nachricht senden Benutzer-Profile anzeigen
 
HHPatrick
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 48
Anmeldedatum: 26.10.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 03.01.2013, 08:50     Titel:
  Antworten mit Zitat      
Marco H. hat Folgendes geschrieben:
Hey,
Das mein angegebener Code zu einer Fehlermeldung führt ist klar, da ich nicht weiß wie du deine Objekte nennst (also den Tag). Uitable1 ist der standardmäßig den Guide bei seiner ersten Tabelle vorschlägt. Da musst du halt deinen Tag als Feldnamen einsetzen. In Guide setzt man immer nur den Anfangswert. Automatisch passiert hier nix...
Es wäre sicher hilfreicher wenn du hier ein beispielcode oder ein abgestecktes lauffähiges Programm postest indem man sehen kann was du bis jetzt gemacht hast...

Greetings


Das es so heißen muss wie die Tabelle hab ich mir schon gedacht, nur trotzdem gehts irgendwie nicht Wink Hab euch mal ein abgespecktes Programm hochgeladen. Die Tabelle zeigt die Daten der Matrix an, wenn ich jetzt aber die Daten in der Matrix ändere, erfolgt dies nicht in der Tabelle.

Schöne Grüße

Patrick

GoMatlab.zip
 Beschreibung:
Beispiel Programm

Download
 Dateiname:  GoMatlab.zip
 Dateigröße:  6.23 KB
 Heruntergeladen:  405 mal
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: 04.01.2013, 10:38     Titel:
  Antworten mit Zitat      
Hey,
also, dass was du hochgeladen hast sind einfach nur Files, die du mit GUIDE erstellt hast. Du rufst lediglich über den Pushbutton Callback die GUI der Tabelle auf. Des Weiteren ist mir auch nicht klar warum du eine weitere Datei mit einer Beispielmatrix hinzugefügt hast. Ich verstehe sowieso nicht genau was du mit der GUI bezwecken willst. Man kann die Daten auch direkt in einer selbst geschriebenen GUI mit Tabelle editieren und weiterverarbeiten. Dann spart man sich den unschönen Weg über assignin evalin etc... Ich denke so wie du es machen wolltest würde es wie folgt zum Ziel führen:
Code:

% Main GUI--------------------------------------------------------------
% --- Executes on button press in pushbutton1.
function pushbutton1_Callback(hObject, eventdata, handles)
% hObject    handle to pushbutton1 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
try
    TabelleGUI(evalin('base','TestMatrix'));
catch
    TabelleGUI(load('TestMatrix.mat'));
end

% TabelleGUI----------------------------------------------------------------
% --- Executes just before TabelleGUI is made visible.
function TabelleGUI_OpeningFcn(hObject, eventdata, handles, varargin)
% This function has no output args, see OutputFcn.
% hObject    handle to figure
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
% varargin   command line arguments to TabelleGUI (see VARARGIN)

set(handles.uitable1,'Data',varargin{1})
% Choose default command line output for TabelleGUI
handles.output = hObject;

% Update handles structure
guidata(hObject, handles);
 


So sollte man es aber nicht machen...

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