If you define a function that loads data from a MAT-file, and find that MATLAB® does not return the expected results, check whether any variables in the MAT-file share the same name as a MATLAB function. Common variable names that conflict with function names include i, j, mode, char, size, and path.
For example, consider a MAT-file with variables height, width, and length. If you load these variables using a function such as findVolume,
function vol = findVolume(myfile) load(myfile); vol = height * width * length;
MATLAB interprets the reference to length as a call to the MATLAB length function, and returns an error:
Error using length Not enough input arguments.
To avoid confusion, when defining your function, choose one (or more) of the following approaches:
Load into a structure array. For example, define the findVolume function as follows:
function vol = findVolume(myfile) dims = load(myfile); vol = dims.height * dims.width * dims.length;
Explicitly include the names of variables in the call to the load function.
Initialize variables (e.g., assign to an empty matrix or empty string) within the function before calling load.
To determine whether a particular name is associated with a MATLAB function, use the exist function.