Which file Matlab selects if two different files with the same name are put under two folders, which are both added via addpath?
45 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
John
el 2 de Jul. de 2020
Respondida: Steven Lord
el 15 de Mayo de 2022
Hi,
I have two functions with the same name. The contents of the functions are different although they share the same type of input and output. I put two functions (.m files) in 2 different folders and I add to Matlab path by calling addpath(genpath(folder_location)).
If I call this function, how does Matlab determine which m file to call? It seems to me that different Matlab versions handle differently. However, the way Matlab does is also not very clear. I am looking for the information for 2015a and 2017a.
Thanks,
2 comentarios
Walter Roberson
el 2 de Jul. de 2020
A far as I recall, R2015a and R2017a were both the same for .m files that are not part of classes and not import'd and not in + directories or 'private' directories. In both cases, the current directory would be searched first, and then the path would be searched in path order. Which is why addpath has specific -BEGIN and -END options, to permit you to tweak the order. (addpath defaults to adding at the beginning of the path.)
Respuesta aceptada
Monisha Nalluru
el 8 de Jul. de 2020
This is a known issue with addpath function in MATLAB R2017a and R2017b. This got fixed in R2018a. It is recommended to update the MATLAB version.
As a workaround for this issue is to remove the path and then add. This results in adding the path at top.
addpath(genpath('subfolder1'))
addpath(genpath('subfolder2'))
% Perform the required operations
% You can use restoredefaultpath command to set the path to default
rmpath('subfolder1')
addpath('subfolder1') % This will add the path on top again
0 comentarios
Más respuestas (1)
Ver también
Categorías
Más información sobre Search Path en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!