MATLAB Answers

'load' function bug?

32 views (last 30 days)
Eugenio
Eugenio on 8 Mar 2012
Hi all, these days I'm writing a function that take a strings as input, let call it 'var'; that string contain the path to a .mat file conteining a variable called 'mat'(it'a a NxM matrix). After I need to load the matrix saved into the .mat file, so i use the command
...
load 'var'
...
and the variable 'mat' appears on my workspace. Instead, if i use a different name for the input variable, for example 'var_1', or 'm_1' or something, it doesn't work!
...
??? Error using ==> load
Unable to read file m_1: No such file or directory
..
The code below is working
...
prova='C:filename.mat';
...
load 'prova'
inside my workspace I found tha matrix 'mat'
But if i rename the variable containing tha variable name as below
...
n=prova;
load 'n'
??? Error using ==> load
Unable to read file n: No such file or directory
...
Can anybody explain me this?! It's so annoyng because my function works only depending on the name of the input variable!

  1 Comment

Jan
Jan on 8 Mar 2012
Btw. It is recommended not to use "var" as name of a variable, because this shaddows the built-in function VAR. Try this:
clear var
var(1:10)
var = rand(1, 10)
var(1:10)

Sign in to comment.

Accepted Answer

Jan
Jan on 8 Mar 2012
Please read the documentation of load and save again. Look in the given examples to learn the difference between these possibilities
name = 'myfile'
save 'name' % saves "name.mat"
save name % saves "name.mat"
save(name) % saves "myfile.mat"
save('name') % saves "name.mat"
The non-functional form save name or the equivalent save 'name' is useful in the command window, but it confuses beginners frequently.

  0 Comments

Sign in to comment.

More Answers (1)

Walter Roberson
Walter Roberson on 8 Mar 2012
load(prova)
and correspondingly
save(prova)
I think if you check you will find that you happen to have a file named var.mat

  2 Comments

Eugenio
Eugenio on 8 Mar 2012
Sorry Walter, can you explain what you mean?
Walter Roberson
Walter Roberson on 8 Mar 2012
Do not use
load 'prova'
as your syntax. Instead, use
load(prova)
as your syntax.

Sign in to comment.

Community Treasure Hunt

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

Start Hunting!