MATLAB: No pre-defined input in a function

functionloadundefined input

Good evening,
I'm about to do some experiments and afterwards I would like to do exactly the same data processing (graphs and such), so I figured a function would be in order. However, for convenience I would like the input of the function to be dynamic, if that is possible.
So if I input name of subject A, the function loads A's data and does calculations.
My current code is:
function experiment(subjectname)
subject.data = load(subjectname);
end
And I have a script, which does nothing at the moment but try to use the function:
experiment(subjectA)
When running the script, I get the following error: "Undefined variable "subjectA" or function "experiment""
Both the experiment.m and subjectA.mat are in my MATLAB directory.

Best Answer

You need to pass in the filename as a string.
baseFileName = 'subjectA.mat';
% folder might be pwd or whatever....
fullFileName = fullfile(folder, baseFileName);
if exist(fullFileName, 'file')
% File exists, use it
experiment(fullFileName);
else
% File doesn't exist - alert user.
errorMessage = sprintf('Warning: file not found:\n%s', fullFileName);
uiwait(warndlg(errorMessage));
end
Related Question