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

Daten einzelner Zellen einer uitable auslesen

 

q_bric
Forum-Newbie

Forum-Newbie


Beiträge: 6
Anmeldedatum: 21.01.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 07.02.2010, 17:06     Titel: Daten einzelner Zellen einer uitable auslesen
  Antworten mit Zitat      
Hallo,

ich habe in meine GUI eine Tabelle eingebaut, deren Zellen durch den Benutzer editiert werden können. Beim Ausführen eines Buttons möchte ich die eingetippten Werten einzelner Zellen auslesen und als Variablen für weitere Berechnungen speichern.

wie ich den kompletten Datensatz der Tabelle auslesen kann weiß ich:
Code:
x=str2double(get(handles.uitable1,'data'));

wie muss ich diesen Befahl nun erweitern um auf einzelne Zellen zu zugreifen? Nehmen wir mal an es handelt sich um ein 3x3 Matrix, wie kann ich nur den Wert der zweiten Spalte und dritten Zeile auslesen?

Beim Ausführen eines zweiten Buttons soll eine Berechnung (separates m-file) ausgeführt werden und die eigelesenen Daten verwenden. Wie über gebe ich die ausgelesenen Variablen der Berechnungsdatei?

Hoffe auf eure Hilfe, danke
Private Nachricht senden Benutzer-Profile anzeigen


MichaM

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 08.02.2010, 07:58     Titel:
  Antworten mit Zitat      
Hallo,

ich bin mir nicht sicher ob die Indexierung direkt möglich ist.
So müsste es auf jeden Fall gehen:
Code:
Data=get(handels.uitable1, 'Data');
Variable=Date(3,2);

Um diesen Wert in einem anderen Callback zu verwenden würde ich ihn in der handles-Struktur zwischen speichern:
Code:
handles.Variable=Variable;
%Am Ende des Callbacks nicht vergessen!
guidata(hObject, handles);

In dem anderen Callback kannst Du das ganze dann aufrufen.

Gruß
Micha
 
q_bric
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 6
Anmeldedatum: 21.01.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 08.02.2010, 15:28     Titel:
  Antworten mit Zitat      
Danke für die Hilfe!

Das mit der Variablenübergabe hab ich aber anscheinend nicht verstanden. Mal ein simples Bsp.:
Ich hab eine GUI mit 2 Buttons. Beim Klick auf den ersten wird die variable "Bohrung" mit dem Wert "5" belegt. "Bohrung" soll dann auch anderen Funktionen zur Verfügung stehen. Zum Bsp. der Callback-funtion des zweiten Buttons. Beim Klick auf diesen soll "Bohrung" im Matlab Command-Window ausgegeben werden
Code:

...

function pushbutton1_Callback(hObject, eventdata, handles)
bohrung=5;
handles.Bohrung=Bohrung;
guidata(hObject, handles);

function pushbutton3_Callback(hObject, eventdata, handles)
disp(handles.bohrung);
 


Wie muss der Code richtig lauten?
Private Nachricht senden Benutzer-Profile anzeigen
 
MichaM

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 09.02.2010, 10:41     Titel:
  Antworten mit Zitat      
Hi,

was kommt denn für eine Fehlermeldung?
In dem abgebildeten Code von Dir ist im Callback des 2. Buttons Bohrung klein geschrieben. Vielleicht ist das ja schon das Problem?!
Code:
disp(handles.Bohrung);

Gruß
Micha
 
Gast

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 16.02.2010, 10:13     Titel:
  Antworten mit Zitat      
Hallo,

Micha könnte dabei gut recht haben!!!

Hier aber noch ne Version zum Auslesen der Daten aus einem Markierten Bereich der Tabelle:

Wenn man einen Bereich markiert, wird die entsprechende callback Funktion ausgeführt:

Code:

function uitable1_CellSelectionCallback(hObject, eventdata, handles)
% hObject    handle to uitable1 (see GCBO)
% eventdata  structure with the following fields (see UITABLE)
%   Indices: row and column indices of the cell(s) currently selecteds
% handles    structure with handles and user data (see GUIDATA)

handles.selected1=eventdata.Indices;

% Update handles structure
guidata(hObject, handles);
 


eventdata ist dabei ein struct, dessen Feld
Code:
die Koordinaten der gerade ausgewählten Felder der Tabelle uitable1 beinhaltet.

Dieser Wert wird in die handles struct übergeben und mit
Code:
guidata(hObject, handles);
dort gespeichert.

Zumindest in der Version ab 2009a funzt das.

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