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

Probleme mit Editierung und Auslesen einer Uitable

 

Mr.Richfield
Forum-Newbie

Forum-Newbie


Beiträge: 2
Anmeldedatum: 11.11.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 07.02.2013, 12:07     Titel: Probleme mit Editierung und Auslesen einer Uitable
  Antworten mit Zitat      
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:

Code:
%
"Undefined function 'GUI_2' for input arguments of type
'struct'.

Error in
@(hObject,eventdata)GUI_2('TableEingabeRB_CellEditCallback',hObject,eventdata,guidata(hObject))
 
Error while evaluating uitable CellEditCallback"
 


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:
%
function varargout = 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',   []);
if nargin && ischar(varargin{1})
    gui_State.gui_Callback = str2func(varargin{1});
end

if nargout
    [varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
else
    gui_mainfcn(gui_State, varargin{:});
end
% End initialization code - DO NOT EDIT


% --- 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;

% Update handles structure
guidata(hObject, handles);

% UIWAIT makes GUI_2 wait for user response (see UIRESUME)
% uiwait(handles.figure1);


% --- Outputs from this function are returned to the command line.
function varargout = 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;


%LOAD DIABAT
function ButtonVerzDia_Callback(hObject, eventdata, handles)
Stammverz2 = uigetdir;
set(handles.text_diabat , 'String' , Stammverz2);


%LOAD ADIABAT
function ButtonVerzAdi_Callback(hObject, eventdata, handles)
Stammverz1 = uigetdir;
set(handles.text_adiabat , 'String' , Stammverz1);

% --- 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)

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%Einlesen der Eingabe-Datei
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Stammverz = get(handles.text_diabat, 'String');
cd([Stammverz '\calc']);

fid = fopen('Eingabe', 'r');
weiter =1;
n=1;

while(weiter)
    tline=fgetl(fid);
    if(tline==-1)
        weiter=0;
    else
        EINGABE(n)=textscan(tline,'%s');
        n=n+1;
    end
end
fclose(fid);


%Anzahl der NTEMP-RB
for i=1:length(EINGABE)
   
   Size_EINGABE_Zeile = size(EINGABE{1,i});
   if Size_EINGABE_Zeile(1,1) > 1
       
        RB = strcmp('=NTEMP',EINGABE{1,i}(2,1));
        if RB == 1
            NTEMP{1,1} = EINGABE{1,i}(1,1);
        end
   end
   
end


for i=1:length(EINGABE)
   
   Size_EINGABE_Zeile = size(EINGABE{1,i});
   if Size_EINGABE_Zeile(1,1) > 1
       
        RB = strcmp('=NQWALL',EINGABE{1,i}(2,1));
        if RB == 1
           
            Limit = str2double(EINGABE{1,i}(1,1));
            for n = 1:Limit
                WALL{n,2} = EINGABE{1,i+n}(1,1);
                WALL{n,1} = str2double(NTEMP{1,1})+n;
            end
        end
   end
   
end

%data für UITABLE "TableEingabeRB"
for n=1:length(WALL)
%     data(n,1)=WALL{n,1};
%     data(n,2)=str2double(WALL{n,2});
%     data(n,3)=false;
    data(n,1)=num2cell(WALL{n,1});
    data(n,2)=num2cell(str2double(WALL{n,2}));
    data(n,3)=num2cell(false);
end

%set(handles.TableEingabeRB,'Data',cell(length(data),3));

%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
 


Gruß und Dank
Private Nachricht senden Benutzer-Profile anzeigen


Mmmartina
Forum-Meister

Forum-Meister


Beiträge: 745
Anmeldedatum: 30.10.12
Wohnort: hier
Version: R2020a
     Beitrag Verfasst am: 07.02.2013, 13:42     Titel:
  Antworten mit Zitat      
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))
Private Nachricht senden Benutzer-Profile anzeigen
 
Mr.Richfield
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 2
Anmeldedatum: 11.11.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 07.02.2013, 16:39     Titel:
  Antworten mit Zitat      
Vielen Dank erstmal für deine Hilfe!

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