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

Button öfter drücken - funktion

 

kleescher
Forum-Newbie

Forum-Newbie


Beiträge: 9
Anmeldedatum: 08.06.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 01.06.2010, 15:46     Titel: Button öfter drücken - funktion
  Antworten mit Zitat      
Hallo an alle,

folgdens möchte ich umsetzen

5 Textfeilder in denen zufällig (random) die die zahlen 1-5 ausgegeben werden.

Code:
%übergeben der daten aus dem B vektor in die Felder.
[B]=random; % funktion welche mir die 5 zufallszahlen ausgibt
set(handles.edit1,'String',num2str(B(1)));
set(handles.edit2,'String',num2str(B(2)));
set(handles.edit3,'String',num2str(B(3)));
set(handles.edit4,'String',num2str(B(4)));
set(handles.edit5,'String',num2str(B(5)));


soweit so gut, das funktioniert.
nun habe ich unter jedem textfeld jeweils einen button. Ziel ist es die "richtige" zahl (bsp:1) zu finden und per button auszuwählen.
nach dem drücken soll nun diese kette nochmal ausgeführt werden (beliebig oft).

mein problem ist aber das wenn ich diese 6 zeilen als funktion schreibe.
bsp:

Code:
%übergeben der daten aus dem B vektor in die Felder.
function do_random();
[B]=random; % funktion welche mir die 5 zufallszahlen ausgibt
set(handles.edit1,'String',num2str(B(1)));
set(handles.edit2,'String',num2str(B(2)));
set(handles.edit3,'String',num2str(B(3)));
set(handles.edit4,'String',num2str(B(4)));
set(handles.edit5,'String',num2str(B(5)));


und diese dann unter meinem button aufrufe, eine fehlermedlung erscheint.

??? Undefined variable "handles" or class "handles.edit1".
Error in ==> Main>do_random at 102
set(handles.edit1,'String',num2str(B(1)));

wie kann ich das umgehen ?
wäre für nen tipp echt dankbar

gruß

kleescher
Private Nachricht senden Benutzer-Profile anzeigen


denny
Supporter

Supporter



Beiträge: 3.853
Anmeldedatum: 14.02.08
Wohnort: Ulm
Version: R2012b
     Beitrag Verfasst am: 01.06.2010, 15:54     Titel:
  Antworten mit Zitat      
Hallo
Und wie wird deine do_random -Funktion aufgerufen? Ist das eine Callback-Funktion?
Private Nachricht senden Benutzer-Profile anzeigen
 
kleescher
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 9
Anmeldedatum: 08.06.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 01.06.2010, 15:56     Titel:
  Antworten mit Zitat      
Hallo,

ist ein externes m.file

Code:

function [B]=random
A=[1 2 3 4 5]; % Teilmenge mit 5 Elementen
index=randperm(length(A));
B=A(index); % einmal die Reihenfolge durchgemischt
 
Private Nachricht senden Benutzer-Profile anzeigen
 
denny
Supporter

Supporter



Beiträge: 3.853
Anmeldedatum: 14.02.08
Wohnort: Ulm
Version: R2012b
     Beitrag Verfasst am: 01.06.2010, 16:05     Titel:
  Antworten mit Zitat      
Ich habe nicht diese Funktion gemeint, sondern diese

Code:

%übergeben der daten aus dem B vektor in die Felder.
function do_random();
[B]=random; % funktion welche mir die 5 zufallszahlen ausgibt
set(handles.edit1,'String',num2str(B(1)));
set(handles.edit2,'String',num2str(B(2)));
set(handles.edit3,'String',num2str(B(3)));
set(handles.edit4,'String',num2str(B(4)));
set(handles.edit5,'String',num2str(B(5)));
 


wo wird DO_RANDOM definiert?
Private Nachricht senden Benutzer-Profile anzeigen
 
kleescher
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 9
Anmeldedatum: 08.06.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 01.06.2010, 16:07     Titel:
  Antworten mit Zitat      
vor dem ersten edit-text fenster

"function edit1_Callback(hObject, eventdata, handle......"
Private Nachricht senden Benutzer-Profile anzeigen
 
denny
Supporter

Supporter



Beiträge: 3.853
Anmeldedatum: 14.02.08
Wohnort: Ulm
Version: R2012b
     Beitrag Verfasst am: 01.06.2010, 16:13     Titel:
  Antworten mit Zitat      
Okay wieder Missverständnis, ich meine natürlich ist diese Funktion eine CALLBACK-Funktion? Wie/Wo rufst du diese Funktion auf?

aber wahrscheinlich rufst aus einer oder mehreren Funktion raus?

Code:

function do_random(handles);
[B]=random; % funktion welche mir die 5 zufallszahlen ausgibt
set(handles.edit1,'String',num2str(B(1)));
set(handles.edit2,'String',num2str(B(2)));
set(handles.edit3,'String',num2str(B(3)));
set(handles.edit4,'String',num2str(B(4)));
set(handles.edit5,'String',num2str(B(5)));

function button1_Callback(hObject, eventdata, handles)
do_random(handles)
 
Private Nachricht senden Benutzer-Profile anzeigen
 
kleescher
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 9
Anmeldedatum: 08.06.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 01.06.2010, 16:23     Titel:
  Antworten mit Zitat      
ok, ich pack jetzt einfach mal den quelltext komplett rein.
(bzw. bis zum ersten button...die anderen funktioniene nach dem selben schema)

Code:

function varargout = Main(varargin)



% MAIN M-file for Main.fig
%      MAIN, by itself, creates a new MAIN or raises the existing
%      singleton*.
%
%      H = MAIN returns the handle to a new MAIN or the handle to
%      the existing singleton*.
%
%      MAIN('CALLBACK',hObject,eventData,handles,...) calls the local
%      function named CALLBACK in MAIN.M with the given input arguments.
%
%      MAIN('Property','Value',...) creates a new MAIN or raises the
%      existing singleton*.  Starting from the left, property value pairs are
%      applied to the GUI before Main_OpeningFcn gets called.  An
%      unrecognized property name or invalid value makes property application
%      stop.  All inputs are passed to Main_OpeningFcn via varargin.
%
%      *See GUI Options on GUIDE's Tools menu.  Choose "GUI allows only one
%      instance to run (singleton)".
%
% See also: GUIDE, GUIDATA, GUIHANDLES

% Edit the above text to modify the response to help Main

% Last Modified by GUIDE v2.5 01-Jun-2010 14:49:40

% Begin initialization code - DO NOT EDIT
gui_Singleton = 1;
gui_State = struct('gui_Name',       mfilename, ...
                   'gui_Singleton',  gui_Singleton, ...
                   'gui_OpeningFcn', @Main_OpeningFcn, ...
                   'gui_OutputFcn',  @Main_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 Main is made visible.
function Main_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 Main (see VARARGIN)

% Choose default command line output for Main
handles.output = hObject;

% Update handles structure
guidata(hObject, handles);

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




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



%
% ausgabe der zufallszahlen an die editfenster
%
[B]=random;
set(handles.edit1,'String',num2str(B(1)));
set(handles.edit2,'String',num2str(B(2)));
set(handles.edit3,'String',num2str(B(3)));
set(handles.edit4,'String',num2str(B(4)));
set(handles.edit5,'String',num2str(B(5)));


%#######################################################################
% Versuch funktion. welche nach dem button ausgeführt werden soll
% um neuen random einträge zu machen

function do_random()
[B]=random;
set(handles.edit1,'String',num2str(B(1)));
set(handles.edit2,'String',num2str(B(2)));
set(handles.edit3,'String',num2str(B(3)));
set(handles.edit4,'String',num2str(B(4)));
set(handles.edit5,'String',num2str(B(5)));

%#######################################################################




function edit1_Callback(hObject, eventdata, handles)
% hObject    handle to edit1 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)

% Hints: get(hObject,'String') returns contents of edit1 as text
%        str2double(get(hObject,'String')) returns contents of edit1 as a double



% --- Executes during object creation, after setting all properties.
function edit1_CreateFcn(hObject, eventdata, handles)
% hObject    handle to edit1 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    empty - handles not created until after all CreateFcns called

% Hint: edit controls usually have a white background on Windows.
%       See ISPC and COMPUTER.
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
    set(hObject,'BackgroundColor','white');
end



function edit2_Callback(hObject, eventdata, handles)
% hObject    handle to edit2 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)

% Hints: get(hObject,'String') returns contents of edit2 as text
%        str2double(get(hObject,'String')) returns contents of edit2 as a double


% --- Executes during object creation, after setting all properties.
function edit2_CreateFcn(hObject, eventdata, handles)
% hObject    handle to edit2 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    empty - handles not created until after all CreateFcns called

% Hint: edit controls usually have a white background on Windows.
%       See ISPC and COMPUTER.
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
    set(hObject,'BackgroundColor','white');
end



function edit3_Callback(hObject, eventdata, handles)
% hObject    handle to edit3 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)

% Hints: get(hObject,'String') returns contents of edit3 as text
%        str2double(get(hObject,'String')) returns contents of edit3 as a double


% --- Executes during object creation, after setting all properties.
function edit3_CreateFcn(hObject, eventdata, handles)
% hObject    handle to edit3 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    empty - handles not created until after all CreateFcns called

% Hint: edit controls usually have a white background on Windows.
%       See ISPC and COMPUTER.
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
    set(hObject,'BackgroundColor','white');
end



function edit4_Callback(hObject, eventdata, handles)
% hObject    handle to edit4 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)

% Hints: get(hObject,'String') returns contents of edit4 as text
%        str2double(get(hObject,'String')) returns contents of edit4 as a double


% --- Executes during object creation, after setting all properties.
function edit4_CreateFcn(hObject, eventdata, handles)
% hObject    handle to edit4 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    empty - handles not created until after all CreateFcns called

% Hint: edit controls usually have a white background on Windows.
%       See ISPC and COMPUTER.
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
    set(hObject,'BackgroundColor','white');
end



function edit5_Callback(hObject, eventdata, handles)
% hObject    handle to edit5 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)

% Hints: get(hObject,'String') returns contents of edit5 as text
%        str2double(get(hObject,'String')) returns contents of edit5 as a double


% --- Executes during object creation, after setting all properties.
function edit5_CreateFcn(hObject, eventdata, handles)
% hObject    handle to edit5 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    empty - handles not created until after all CreateFcns called

% Hint: edit controls usually have a white background on Windows.
%       See ISPC and COMPUTER.
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
    set(hObject,'BackgroundColor','white');
end




% --- Executes on button press in pushbutton1.
function [a]=pushbutton1_Callback(hObject, eventdata, handles)
% hObject    handle to pushbutton1 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
% auswertung ob die zahl "1" getroffen im feld war.
if get(handles.edit1,'String')==num2str(1);
    w_r=1;
else
    w_r=0;
end

guidata(hObject, handles);
do_random;

 


für mich ist das thema gui 48 h jung....entschuldige bitte deshalb meine vermutlich recht einfachen fehler Wink und danke schonmal
Private Nachricht senden Benutzer-Profile anzeigen
 
denny
Supporter

Supporter



Beiträge: 3.853
Anmeldedatum: 14.02.08
Wohnort: Ulm
Version: R2012b
     Beitrag Verfasst am: 01.06.2010, 16:31     Titel:
  Antworten mit Zitat      
Du hast ja handles in deinem PUSHBUTTON1_CALLBACK also übergebe diese an DO_RANDOM-Funktion weiter:

Code:


function do_random(handles)
[B]=random;
set(handles.edit1,'String',num2str(B(1)));
set(handles.edit2,'String',num2str(B(2)));
set(handles.edit3,'String',num2str(B(3)));
set(handles.edit4,'String',num2str(B(4)));
set(handles.edit5,'String',num2str(B(5)));



% Callbacks haben keine Ausgaben
% --- Executes on button press in pushbutton1.
function [a]=pushbutton1_Callback(hObject, eventdata, handles)
% hObject    handle to pushbutton1 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
% auswertung ob die zahl "1" getroffen im feld war.
if get(handles.edit1,'String')==num2str(1);
    w_r=1;
else
    w_r=0;
end

guidata(hObject, handles);
do_random(handles);
 
Private Nachricht senden Benutzer-Profile anzeigen
 
kleescher
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 9
Anmeldedatum: 08.06.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 01.06.2010, 16:51     Titel:
  Antworten mit Zitat      
super !

dank dir

ich verstehe die var: handles noch nicht so richtig.
was genau wird da übergeben ?
Private Nachricht senden Benutzer-Profile anzeigen
 
denny
Supporter

Supporter



Beiträge: 3.853
Anmeldedatum: 14.02.08
Wohnort: Ulm
Version: R2012b
     Beitrag Verfasst am: 01.06.2010, 17:05     Titel:
  Antworten mit Zitat      
Lese mal die Antwort hier

http://www.gomatlab.de/hobject-even.....das-eigentlich-t2683.html
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.