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

definieren über handles

 

lijiang_de
Forum-Newbie

Forum-Newbie


Beiträge: 3
Anmeldedatum: 26.08.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 26.08.2011, 12:02     Titel: definieren über handles
  Antworten mit Zitat      
Hallo liebe Forumgemeinde,
Ich bin Matlabanfänger und brauche Hilfe.
Ich habe 2 Pushbuttons(dateneinlesen und Plot) und Axes erstellt.Aber wieso gibt es immer


' ??? Undefined function or variable 'hObject'.

Error in ==> test_gui2>pushbutton1_Callback at 47
guidata(hObject, handles);

??? Error while evaluating uicontrol Callback[/b][/b]'?

Wie mache ich sowas?
Code:

function test_gui2 ()
% Create and then hide the GUI as it is being constructed.
h_fig =figure('toolbar','none',...
'position',[198 56 480 500],...
'name','test_gui2',...
'Tag','test_gui2');
% Construct the components.
h_axes = axes('parent',h_fig,...
'position',[0.15 0.45 0.7 0.5],...
'visible','on');
hcontrolbereich = uipanel('parent',h_fig,...
'Title','Control-Bereich',...
'Tag','Control-Bereich','Position',[.15 .1 .70 .30]);
p1 = uicontrol('parent',hcontrolbereich,...
'Style','pushbutton','String','Plot',...
'Position',[60 50 80 30],...
'Tag', 'Plot',...
'Callback',{@pushbutton2_Callback});
p2 = uicontrol('parent',hcontrolbereich,...
'Style','pushbutton','String','Csvdatei-Einlesen',...
'Position',[280 100 80 30],...
'Tag', 'Csvdatei-Einlesen',...
'Callback',{@pushbutton1_Callback});
p3 = uicontrol('parent',hcontrolbereich,...
'Style','pushbutton','String','Schließen',...
'Position',[10 30 80 30],...
'Tag', 'Schließen',...
'Callback','close');
align([hcontrolbereich,p1,p2],'Center','None');
set([h_fig,hcontrolbereich,p1,p2,p3],...
'Units','normalized');
set(h_fig,'Name','Test GUI2')
movegui(h_fig,'center')
set(h_fig,'Visible','on');

end

function pushbutton1_Callback(~,~, ~)

[FileName,PathName] = uigetfile('*.csv','Select the CSV file');
addpath(PathName);
x = csvread(FileName,0,3);
handles.data1 = FileName;
handles.data2 = x;
% findobj('Tag','Plot')
% findobj('Tag','Csvdateieinlesen')
guidata(hObject, handles);
end
% --- Executes on button press in pushbutton2.

function pushbutton2_Callback(hObject, ~, ~)
% set(gcf)
% set(handles.pushbutton1,'handles.data1','handles.data2')
% handles = guihandles;
FileName= handles.data1;
x = handles.data2;
data = guidata(hObject);

if x(1,1)<(-10e-1)
x1 = x(:,1);
xinfo = strcat('time (second)');
elseif (-10e-1)<x(1,1) && x(1,1)<(-10e-4)
x1 = x(:,1)*10e2;
xinfo = strcat('time (milisecond)');
elseif (-10e-4)<x(1,1) && x(1,1)<(-10e-Cool
x1 = x(:,1)*10e5;
xinfo= strcat('time (mikrosecond)');
elseif (-10e-Cool<x(1,1) && x(1,1)<(-10e-11)
x1 = x(:,1)*10e8;
xinfo= strcat('time (nanosecond)');
else
x1 = x(:,1)*10e10;
xinfo = strcat('time (pikosecond)');
end
%Skalierung von Y-Achsen
if -(x(1,2))> 10e-2
yinfo = strcat('amplitude(volt)');
else
yinfo = strcat('amplitude(milivolt)');
end
plot(x1,x(:,2))
xlabel(['\fontsize{16}',xinfo],'color','black')
ylabel(['\fontsize{16}',yinfo],'color','black')

grid on

%beschriftung der Achsen automatisch(über zeit und amplitude)
% xlim([min(round(x1)-1) max(round(x1))+1])%achsen skalieren
xlim([min(floor(x1)-1) max(ceil(x1))+1])%achsen skalieren
ylim([1.05*min(x(:,2)) 1.05*max(x(:,2))])
% axis([min(x1) max(x1) min(x(:,2)) max(x(:,2)) ] );

%beschriftung der title automatisch
title(['\fontsize{25}','Das ist ',FileName],'color','b')%automatisch title eintragen
legend(FileName)
guidata(hObject,handles);

end
Private Nachricht senden Benutzer-Profile anzeigen


Gast1

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 26.08.2011, 12:17     Titel:
  Antworten mit Zitat      
Hi,
der Editor scheint dir im Laufe des Programmierens empfohlen zu haben,
hObject, eventdada und handles durch "~" zu ersetzen, weil diese nicht benutzt werden.
Dann hast du sie aber doch benutzt.
"~" musst du also wieder ersetzen.



Code:


function pushbutton1_Callback(~,~, ~)

function pushbutton1_Callback(hObject,eventdata,handles)

 
 
lijiang_de
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 3
Anmeldedatum: 26.08.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 26.08.2011, 12:23     Titel:
  Antworten mit Zitat      
function pushbutton1_Callback(hObject,eventdata, handles)




aber auch so

??? Input argument "handles" is undefined.

Error in ==> test_gui3>pushbutton2_Callback at 55
FileName= handles.data1;

??? Error while evaluating uicontrol Callback
Private Nachricht senden Benutzer-Profile anzeigen
 
Gast1

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 26.08.2011, 12:53     Titel:
  Antworten mit Zitat      
In der 2. Callbackfunktion musst du das natürlich auch wieder ändern
 
lijiang_de
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 3
Anmeldedatum: 26.08.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 26.08.2011, 12:54     Titel:
  Antworten mit Zitat      
function pushbutton1_Callback(hObject,eventdata, handles)

function pushbutton2_Callback(hObject,eventdata, handles)


aber auch so

??? Input argument "handles" is undefined.

Error in ==> test_gui3>pushbutton2_Callback at 55
FileName= handles.data1;

??? Error while evaluating uicontrol Callback
Private Nachricht senden Benutzer-Profile anzeigen
 
Gast1

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 26.08.2011, 13:35     Titel:
  Antworten mit Zitat      
Ach,
das ist ja gar kein GUIDE GUI Idea


In dem Fall kannst du deine handles Struktur selber anlegen, etwa so:


Code:

function test_gui2 ()
% Create and then hide the GUI as it is being constructed.
handles=struct;

handles.h_fig =figure('toolbar','none',...
'position',[198 56 480 500],...
'name','test_gui2',...
'Tag','test_gui2');
% Construct the components.
handles.h_axes = axes('parent',handles.h_fig,...
'position',[0.15 0.45 0.7 0.5],...
'visible','on');
handles.hcontrolbereich = uipanel('parent',handles.h_fig,...
'Title','Control-Bereich',...
'Tag','Control-Bereich','Position',[.15 .1 .70 .30]);
handles.p1 = uicontrol('parent',handles.hcontrolbereich,...
'Style','pushbutton','String','Plot',...
'Position',[60 50 80 30],...
'Tag', 'Plot',...
'Callback',{@pushbutton2_Callback});
handles.p2 = uicontrol('parent',handles.hcontrolbereich,...
'Style','pushbutton','String','Csvdatei-Einlesen',...
'Position',[280 100 80 30],...
'Tag', 'Csvdatei-Einlesen',...
'Callback',{@pushbutton1_Callback});
handles.p3 = uicontrol('parent',handles.hcontrolbereich,...
'Style','pushbutton','String','Schließen',...
'Position',[10 30 80 30],...
'Tag', 'Schließen',...
'Callback','close');
align([handles.hcontrolbereich,handles.p1,handles.p2],'Center','None');
set([handles.h_fig,handles.hcontrolbereich,handles.p1,handles.p2,handles.p3],...
'Units','normalized');
set(handles.h_fig,'Name','Test GUI2')
movegui(handles.h_fig,'center')
set(handles.h_fig,'Visible','on');
guidata(handles.h_fig,handles);
end

% und die Callbacks anpassen:
function pushbutton1_Callback(hObject,~)
handles=guidata(hObject);
% ... code ...

guidata(hObject, handles);

function pushbutton2_Callback(hObject,~)
handles=guidata(hObject);
% ... code ...
guidata(hObject,handles);

 
 
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.