MATLAB: The “unique” function returns “Index exceeds matrix dimensions” error

index exceeds matrix dimensionsunique function

I have a .mat file loaded in the Workspace. I execute the command
unique = unique(datafile.data(:,2));
It creates the unique array successfully. When I execute the very same command for a second time, what should happen? The array 'unique' should be created again and the one in the Workspace should be replaced. No, instead, I get the error 'Index exceeds matrix dimensions.' If I assign the statement to a different name like
a = unique(datafile.data(:,2));
I get the same error. So the first time I execute the command, no problem. The second time I execute it, I get the error. What is going on?

Best Answer

I'm pretty sure that what is happening is that the first time, you have defined the variable called unique, which is a bad idea because it is the same name as the function.
The second time through that code, MATLAB is trying to access the variable, not the function, so you get the error.
The fact that you get the error again when assigning the output to a suggests to me that you still have the variable named unique in the workspace. Clear that variable out and try again.