Verfasst am: 07.02.2013, 12:07
Titel: Probleme mit Editierung und Auslesen einer Uitable
Hallo zusammen,
ich beschäftige mich erst seit kurzem mit den Matlab-GUIs und stehe grade vor einem Problem bei dem sich mein mangelndes Grundwissen anscheinend bemerkbar macht.
Nun zu meinem Problem, bei dem ihr mir hoffentlich helfen könnt:
Ich verarbeite Daten über einen Button und gebe diese dann in eine Uitable ein. Das klappt auch alles hervorragend.
Meine Uitable besteht aus 3 Spalten. In den ersten drei stehen "numerical" in der dritten editierbare "logical".
Nun möchte ich aber die dritte Zeile, die die Checkboxen enthält, editieren, was ich auch vorher eingestellt habe, jedoch kommt dann immer folgende Fehlermeldung:
Ich verstehe einfach noch nicht so ganz was ich in CellEditCallback der Table reinschreiben muss. Habe da einiges ausprobiert und rumgelesen was aber nicht zum Erfolg geführt hat.
Hier mein Code:
Code:
%
functionvarargout = GUI_2(varargin) % GUI_2 MATLAB code for GUI_2.fig % GUI_2, by itself, creates a new GUI_2 or raises the existing % singleton*.
%
% H = GUI_2 returns the handle to a new GUI_2 or the handle to % the existing singleton*.
%
% GUI_2('CALLBACK',hObject,eventData,handles,...) calls the local % function named CALLBACK in GUI_2.M with the given input arguments.
%
% GUI_2('Property','Value',...) creates a new GUI_2 or raises the % existing singleton*. Starting from the left, property value pairs are % applied to the GUI_2 before GUI_2_OpeningFcn gets called. An % unrecognized property name or invalid value makes property application % stop. All inputs are passed to GUI_2_OpeningFcn via varargin.
%
% *See GUI_2 Options on GUIDE's Tools menu. Choose "GUI_2 allows only one % instance to run (singleton)".
%
% See also: GUIDE, GUIDATA, GUIHANDLES
% Edit the above text to modify the response to help GUI_2
% Last Modified by GUIDE v2.5 07-Feb-2013 11:50:27
% Begin initialization code - DO NOT EDIT
gui_Singleton = 1;
gui_State = struct('gui_Name', mfilename, ...
'gui_Singleton', gui_Singleton, ...
'gui_OpeningFcn', @GUI_2_OpeningFcn, ...
'gui_OutputFcn', @GUI_2_OutputFcn, ...
'gui_LayoutFcn', [] , ...
'gui_Callback', []);
ifnargin && ischar(varargin{1})
gui_State.gui_Callback = str2func(varargin{1});
end
% --- Executes just before GUI_2 is made visible. function GUI_2_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 GUI_2 (see VARARGIN)
% Choose default command line output for GUI_2
handles.output = hObject;
% UIWAIT makes GUI_2 wait for user response (see UIRESUME) % uiwait(handles.figure1);
% --- Outputs from this function are returned to the command line. functionvarargout = GUI_2_OutputFcn(hObject, eventdata, handles) % varargout cell array for returning output args (see VARARGOUT); % hObject handle to figure % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)
% Get default command line output from handles structure varargout{1} = handles.output;
% --- Executes on button press in loadEingabe. function loadEingabe_Callback(hObject, eventdata, handles) % hObject handle to loadEingabe (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)
%Setzen der UITABLE "TableEingabeRB"
set(handles.TableEingabeRB,'Data',data);
% --- Executes on button press in pushbutton7. function pushbutton7_Callback(hObject, eventdata, handles) % hObject handle to pushbutton7 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)
daten = get(handles.TableEingabeRB,'Data');
%daten
1. Fasse bitte mal deinen obigen Quelltext auf das wesentliche zusammen. Besonders das Entfernen der automatisch eingefügten Kommentare sollte die Lesbarkeit deutlich verbessern.
2. Bitte vollständige Fehlermeldung posten.
3. Matlab -> Debug -> Stop if Errors/Warning --> Always stop if error
Steppe da mal selber durch und schau dir an, was wo überhaupt übergeben wird.
Lese evt. mal VOR der Zeilt set(handles.TableEingabeRB,'Data',data);
mit get(handles.TableEingabeRB,'Data');
die Daten aus und vergleiche das mit den von dir erstellten Daten.
_________________
LG
Martina
"Wenn wir bedenken, daß wir alle verrückt sind, ist das Leben erklärt." (Mark Twain))
1. Ich dachte mir, dass das posten des gesamten Codes eventuell sinnvoll sein könnte.
2. Das war die vollständige Fehlermeldung.
3. Das mit dem Debugging hat mir sehr weitergeholfen. Ich wusste nicht so recht wie ich die GUI debuggen kann.
Ich habe die Daten alle richtig eingegeben und habe den Fehler endlich gefunden. Im Property Inspector war ein Callback für die Table vorgegeben, was irgendwie falsch war. Das habe ich geändert und jetzt funktioniert alles tadellos.
Gruß
Einstellungen und Berechtigungen
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
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.