MATLAB: How to pass a variable between a m-file and another m-file that runs a gui

guiguidem-filem-file guimatlab gui

Hello,
I'm trying to pass a variable between one m-file and another m-file that initiates gui.
More specifically:
I have one m-file (mfile1) that is concerned with the initiation of gui, however, some calculations are made in other m-file(mfile2).
I would like to pass some variables in the mfile2 to the mfile1.
Is it possible?
Thank you in advance.

Best Answer

M files can contain scripts or functions but variables can only be passed to functions so the m-file must be written as a function [see Scripts vs Functions and Create Function in Files].
For example,
mfile2
function [output] = mfile2(input)
% add 1 to the input and pass the result to mfile2.
y = input + 1;
% Send y to mfile1 and get the result
% mfile1 divides y by 2 to z equals (input+1)/2
z = mfile1(y);
end
mfile1
function [output] = mfile1(input)
% divide the input by two
output = input/2;
end
All variables needed in a function must either be passed into the function as inputs or defined within the function. If your functions interact with your GUI, pass the handle structure into the function.