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

 Akzeptierte Antwort

Jan
Jan am 26 Apr. 2019

0 Stimmen

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.

1 Kommentar

Abdelmalek Benaimeur
Abdelmalek Benaimeur am 26 Apr. 2019
i did this and i got a struct which contains all the matrix
is there a way to obtain all the matrix in the workspace and not a struct wchich contain them ?

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (1)

Ruba
Ruba am 27 Jun. 2023

0 Stimmen

how the solvw a problem (Error using matlab.ui.control.internal.controller.ComponentController/executeUserCallback
Error while evaluating Button PrivateButtonPushedFcn.)?

Kategorien

Mehr zu Startup and Shutdown finden Sie in Hilfe-Center und File Exchange

Gefragt:

am 26 Apr. 2019

Beantwortet:

am 27 Jun. 2023

Community Treasure Hunt

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

Start Hunting!

Translated by