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

guiguidem-filem-file guimatlab gui

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,
    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);
    function [output] = mfile1(input)
    % divide the input by two
    output = input/2;
    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.