MATLAB: Help with this problem

app designerassigninload

hello,
i'm working on appdesigner
i want to add a push button which allow me to load mat file and show its elements in the workspace
for example i have ''example.mat" it conatins 03 matrix A,B and C
i did this
[file,path] = uigetfile('*.mat', 'Select a File');
if isequal(file,0)
disp('User selected Cancel')
else
load(fullfile(path,file))
assignin('base',file)
end
but i got this error
Error using assignin
Not enough input arguments.
Error in app1/LoadButtonPushed (line 18)
assignin('base',file)
Error using matlab.ui.control.internal.controller.ComponentController/executeUserCallback (line 335)
Error while evaluating Button PrivateButtonPushedFcn.
how can i solve this problem

Best Answer

The error message is clear: See doc assignin to see, that it requires 3 arguments:
data = load(fullfile(path,file))
assignin('base', 'data', data)
It is much safer to catch the imported data in a variable instead of polluting the workspace. Imagine the MAT file contains a variable called "assignin". Then the line: assignin('base', 'data', data) shows the evil problem.
By the way, do not use the important Matlab function "path" as name of a variable. This can cause serious problems, when you debug the code.