MATLAB: Findpeaks doesn’t work with a different startup folder

findpeaksstartup.m

Hello I'm using Matlab 2017a on macOS 10.12.6. I wanted to use findpeaks function so I clean installed Matlab together with the Signal Processing Toolbox. Then I checked the examples for findpeaks function in the documentation and it works fine. But the moment I use startup.m file to start the Matlab session from another folder, the same example for findpeaks doesn't work and the use of command findpeaks(data) returns an empty matrix. Does anyone has any idea about what is this problem and how could this be fixed?

Best Answer

Is there any build-in debugging facility in Matlab that can clearly tell
what is exactly the problem, like in this case?
No, this is not possible, even not in theory. Matlab has no chance to guess, that there is a problem at all: You have created a function called as a builtin function, but this might be intented. The function replies a valid output, and it would be very scary if Matlab tells you exactly, that you wanted to get something else and the reason for the difference.
Note that Matlab does display warnings, when built-in functions are shadowed. Create "plot.m" in a folder of Matlab's path to get:
Warning: Function plot has the same name as a MATLAB builtin.
We suggest you rename the function to avoid a potential name conflict.
(Who is "we"? The same as "they" in: "All I want to say is they don't really care about us"? Who is "us"??? Sorry, back to the topic:)
But finpeaks is not a built-in function, but provided as M-file. Then a shadowing is accepted.
I use FEX: UniqueFuncNames to check such problems automatically.