lijiang_de
Forum-Newbie
Beiträge: 3
Anmeldedatum: 26.08.11
Wohnort: ---
Version: ---
Verfasst am : 26.08.2011, 12:02
Titel : definieren über handles
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?
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-
x1 = x(:,1)*10e5;
xinfo= strcat('time (mikrosecond)');
elseif (-10e- <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
Gast1
Gast
Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
Verfasst am : 26.08.2011, 12:17
Titel :
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.
lijiang_de
Themenstarter
Forum-Newbie
Beiträge: 3
Anmeldedatum: 26.08.11
Wohnort: ---
Version: ---
Verfasst am : 26.08.2011, 12:23
Titel :
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
Gast1
Gast
Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
Verfasst am : 26.08.2011, 12:53
Titel :
In der 2. Callbackfunktion musst du das natürlich auch wieder ändern
lijiang_de
Themenstarter
Forum-Newbie
Beiträge: 3
Anmeldedatum: 26.08.11
Wohnort: ---
Version: ---
Verfasst am : 26.08.2011, 12:54
Titel :
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
Gast1
Gast
Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
Verfasst am : 26.08.2011, 13:35
Titel :
Ach,
das ist ja gar kein GUIDE GUI
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) ;
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
Impressum
| Nutzungsbedingungen
| Datenschutz
| FAQ
| 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.