MATLAB: Error due to using the same varname in mat file and matlab function

duplicate varname and function

I have a mat file (level1.mat) having the following structure. a = 187817×28 tar = 14931×5 zes = 1167×4
To read this file, I used the following procedure. load('level1.mat') a0=a; tar0 = tar; zes0=zes; clear a tar zes
But it gave me an error message like Error using tar (line XX) Not enough input arguments. Error in reader_level1 (line XX) tar0 = tar;
I think the problem might be caused by the duplicate variable name (tar) in mat file and function (tar: to compress file). However, I cannot solve this problem. I do not want to change original mat file but change my code. Could you please help me how to fix this problem? Thank you very much in advance.

Best Answer

Try to load the variables into a structure to prevent "poofing" them into your workspace, which can cause issues with overriding existing variables and functions. See workaround below:
T = load('level1.mat');
a0 = T.a;
tar0 = T.tar;
zes0 = T.zes;
clear T
Also, it seems you're about to label variables dynamically like a0, a1, a2, a3, tar0, tar1, tar2 etc. This will cause issues later when you want to access all a0-N, tar0-N, etc. Instead, use T directly, OR, store variables in a matrix, cell, or structure. Lastly, using "clear" is slow and hard to keep track of which variables to clear/keep, so try to avoid using this if you can.
Read this discussion before making your code: