Problema GUI

di il
1 risposte

Problema GUI

Salve a tutti, premesso che non sono affatto esperta in Matlab ma per necessità devo realizzare una GUI.
ho inserito 5 push button, uno static text ed un popup menu.
Il problema è che già nella fase iniziale mi compare un errore:
Undefined function 'relazionidimercato' for input arguments of type 'double'.

Error in provatesi>provatesi_OpeningFcn (line 66)
relazionidimercato(handles.current_data)

Error in gui_mainfcn (line 220)
feval(gui_State.gui_OpeningFcn, gui_hFigure, [], guidata(gui_hFigure), varargin{:});

Error in provatesi (line 42)
gui_mainfcn(gui_State, varargin{:});

Di seguito vi riporto lo script:
function varargout = provatesi(varargin)
% PROVATESI MATLAB code for provatesi.fig
% PROVATESI, by itself, creates a new PROVATESI or raises the existing
% singleton*.
%
% H = PROVATESI returns the handle to a new PROVATESI or the handle to
% the existing singleton*.
%
% PROVATESI('CALLBACK',hObject,eventData,handles,...) calls the local
% function named CALLBACK in PROVATESI.M with the given input arguments.
%
% PROVATESI('Property','Value',...) creates a new PROVATESI or raises the
% existing singleton*. Starting from the left, property value pairs are
% applied to the GUI before provatesi_OpeningFcn gets called. An
% unrecognized property name or invalid value makes property application
% stop. All inputs are passed to provatesi_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 provatesi

% Last Modified by GUIDE v2.5 24-Nov-2015 16:52:41

% Begin initialization code - DO NOT EDIT
gui_Singleton = 1;
gui_State = struct('gui_Name', mfilename, ...
'gui_Singleton', gui_Singleton, ...
'gui_OpeningFcn', @provatesi_OpeningFcn, ...
'gui_OutputFcn', @provatesi_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 provatesi is made visible.
function provatesi_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 provatesi (see VARARGIN)
x=0:0.1:10;
nonform=trapmf(x,[0 0 1 3]);
handles.nonform=nonform;
pocoform=trapmf(x,[1 3 3 5]);
handles.pocoform=pocoform;
abbform=trapmf(x,[3 5 5 7]);
handles.abbform=abbform;
altform=trapmf(x,[5 7 7 9]);
handles.altform=altform;
complform=trapmf(x,[7 9 10 10]);
handles.complform=complform;
handles.current_data=handles.nonform;
relazionidimercato(handles.current_data)
% Choose default command line output for provatesi
handles.output = hObject;

% Update handles structure
guidata(hObject, handles);

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


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


function popupmenu1_Callback(hObject, eventdata, handles)


function popupmenu1_CreateFcn(hObject, eventdata, handles)

% Hint: popupmenu 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 pushbutton1_Callback(hObject, eventdata, handles)


function pushbutton9_Callback(hObject, eventdata, handles)


function pushbutton10_Callback(hObject, eventdata, handles)


function pushbutton11_Callback(hObject, eventdata, handles)


function pushbutton12_Callback(hObject, eventdata, handles)


come posso risolvere questo problema?
grazie a tutti quelli che mi risponderanno...

1 Risposte

  • Re: Problema GUI

    Nella funzione "provatesi_OpeningFcn" della tua GUI chiami la funzione "relazionidimercato".

    Analizza il messaggio di errore:
    Undefined function 'relazionidimercato' for input arguments of type 'double'.
    Il messaggio può significare:

    [*] nel "path" di MatLab non è definta la funzione "relazionidimercato" (in pratica, MatLab "non trova" la funzione "relazionidimercato")
    [*] la funzione esiste, ma, per come è definita, non prevede che in input venga fornito un valore (o un vettore) di numeri reali.

    Quindi:

    [*] dove è definita la funzione?
    [*] come è definita la funzione? Quale / quali parametri di input richiede?

    Inoltre, da come hai inserito la chiamata alla funzione "relazionidimercato"
    relazionidimercato(handles.current_data)
    si direbbe che la funzione non ritorni alcun valore in output quindi:

    [*] cosa "fa" (o cosa vorresti che facesse) la funzione "relazionidimercato"? Per caso si limita a generare dei grafici?

    Per essere coerente con il modo con il quale l'hai chiamata, la funzione "relazionidimercato" dovrebbe avere una dichiarazione del tipo
    function relazionidimercato(vettore_input)
    dove "vettore_input" è, appunto il vettore che passi in input alla funzione

    Hope this helps.
Devi accedere o registrarti per scrivere nel forum
1 risposte