How to load data without reloading?

I would like to load variables from a .mat file, but just those ones which are not loaded before. It is possible not overwrite the variables?

Answers (1)

As I understand it, you have some variables in your workspace, let's call them x and y. You want to load some test.mat file that has variables x and y in them. You can do
x = 1;
y = 2;
t = load('test.mat');
x2 = t.x;
y2 = t.y;

3 Comments

My problem is that I dont know I have x or not. Maybe yes maybe no. If I have x than I would like to load x, however in case of existed x I dont want to load x. And I want to do it automatically for all variables in the .mat file without knowing the names
You can try
m = matfile('test.mat');
w = who(m);
to the get names of the variables in test.mat.
Or, putting it all together, if test.mat contains a variable named x, load it:
if any(strcmpi(who(matfile('test.mat')),'x'))
x = load('test.mat','x');
end
Similarly, you could compare the variables in test.mat to the variables in your workspace using ismember with who.

Sign in to comment.

Asked:

on 27 Oct 2015

Commented:

on 27 Oct 2015

Community Treasure Hunt

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

Start Hunting!