Is it possible to declare and function within another function? if not, Look at the code below

1 visualización (últimos 30 días)
% --- Executes on button press in Browse1.
function Browse1_Callback(hObject, eventdata, handles)
ExPath1 = fullfile(FilePath, FileName)
set(handles.Filename1,'string',ExPath1)
%-----------------------------------------------------------------------------
(I am trying use the ExPath1 variable from my Browse function in my calculate function, IS IT POSSIBLE TO USE THE ExPath1 VARIABLE? because I need it in order to do the calculation.)
%-----------------------------------------------------------------------------
%Calculate button code
function Calculate1_Callback(~, ~, ~)
[x, error, stat1, stat2, stat3] = correctionModelworking1(ExPath1,'true',2,'true');

Respuesta aceptada

Walter Roberson
Walter Roberson el 3 de Jun. de 2013
Editada: Walter Roberson el 3 de Jun. de 2013
More specifically:
function Calculate1_Callback(~, ~, handles)
ExPath1 = get(handles.Filename1, 'string');
x, error, stat1, stat2, stat3] = correctionModelworking1(ExPath1,'true',2,'true');
Provided, that is, that your callback is being passed handles, as would be the case if you are using GUIDE.
  4 comentarios
Cordelle
Cordelle el 4 de Jun. de 2013
% --- Executes on button press in Calculate1.
function Calculate1_Callback(~, ~, ~)
% hObject handle to Calculate1 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
%[x, error, stat1, stat2, stat3] = correctionModelworking1('landsat5.xls', 'true', 2,'true');
global shift fileName;
[~, ~, ~, ~, stat3] = correctionModelworking1(fileName, shift,'false',handles); %#ok<NASGU>
clear shift
Walter Roberson
Walter Roberson el 4 de Jun. de 2013
As I indicated in my code, you need
function Calculate1_Callback(~, ~, handles)
If you use my code as written then you will not need the "global"

Iniciar sesión para comentar.

Más respuestas (1)

Sean de Wolski
Sean de Wolski el 3 de Jun. de 2013
You either have to pass it in as an input to the second function, or make the second function nested:
function foo(stuff)
a = pi;
function baz()
a = a+1;
end
end

Categorías

Más información sobre Migrate GUIDE Apps en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by