How to avoid this warning?

Hi, I have made a gui using GUIDE. When i call a function that is changing the path of matlab current directory. I get the following warning:
Warning: Function plot has the same name as a MATLAB builtin. We suggest you rename the function to avoid a potential name conflict.
> In gui>browse_Callback at 313 In gui_mainfcn at 96 In gui at 42 In @(hObject,eventdata)gui('browse_Callback',hObject,eventdata,guidata(hObject))
There appears also a warning upon startup of Matlab:
Warning: Function plot has the same name as a MATLAB builtin. We suggest you rename the function to avoid a potential name conflict. I have already tried this http://www.mathworks.com/matlabcentral/answers/215315-warnings-and-error-messages-after-launching-matlab-r2015a-for-the-first-time Thanks alot

1 Comment

Why bother changing directory anyway? It is easier to pass an absolute/relative path. Doing so also avoids a the pain of debugging while changing directories.

Sign in to comment.

 Accepted Answer

This is most likely the problem:
path = strcat(path_choice);
path is a very important built-in global variable for MATLAB and you just destroyed it. Pick another name, like "folder" instead of "path". "folder" is okay to use.
Don't use cd() anyway - see the FAQ. Just construct a full filename with sprintf() and fullfile() whenever you need it and leave the current folder alone or you could have trouble later when you try to call functions that are no longer in the current folder.

12 Comments

Still it gives the same error after changing path to folder.
Call them. I had the same problem where it complained about format() but I had no such function. I forgot how they fixed it, but it wasn't because I had a function called that. However it only complained when I tried to compile the program into a standalone executable, not when I just tried to run it from the MATLAB development environment.
Call them?
Sorry, if you're a student, you probably don't have tech support. Ask a professor to call for you.
Please show the current version of the code.
And tell us what this says:
which -all plot
Only I get the warning discussed in question when the following function browse & set the path
function browse_Callback(hObject, eventdata, handles)
directory_choice = uigetdir('Select a directory');
cd(directory_choice);
selected= strcat(directory_choice);
set(handles.edit3, 'String', selected);
Inside the directory you selected, you have a file named plot.m
Note: strcat(directory_choice) is the same as directory_choice as uigetdir() always returns a string except when the user cancels. (If the user cancels then uigetdir returns numeric 0, and you would have failed on cd(0) so you would not have reached that point in the code.)
Student new
Student new on 26 Jan 2016
Edited: Student new on 26 Jan 2016
There is no file named plot.m in the directory i am working in.
Can you just do what I asked, anyway?
And tell us what this says:
which -all plot
Do it from your code since it appears that plot() is a function defined inside your main GUIDE m-file, not in a separate m-file.
Of hold down control-shift-F and type plot( into the search field and see what lines it brings up.
Thanks alot Image Analyst... The pathtool was not setting my current working directory properly.
What do you mean by the pathtool?
Do you mean the "Set Path" button on the Home tab of the tool ribbon?
Or do you mean the browsing functionality built into the "Current Folder" panel where you can double-click on the folder to make it the current folder?

Sign in to comment.

More Answers (1)

jgg
jgg on 25 Jan 2016
You've created a function named plot which has the same name as another function already in Matlab.
To fix this, simply rename your plot function something like plot_v and save it in a file with the updated name.

1 Comment

I have not created a function named plot. The following is the function which gives the error when called in Gui.
function browse_Callback(hObject, eventdata, handles)
path_choice = uigetdir('Select a directory');
cd(path_choice);
path= strcat(path_choice);
set(handles.edit3, 'String', path);

Sign in to comment.

Categories

Community Treasure Hunt

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

Start Hunting!