Functions name duplication in toolbox

Hi,
I have a problem with function name duplication.
I am using a toolbox in which i have a function called "kmeans" ( a name that i dont want to change because it will lead to problems with other functions im working with), but there is a part in my program where i want to use matlab's implementation for the kmeans algorithem (https://www.mathworks.com/help/stats/kmeans.html#buefs04-X)
Is there any option to "sign" my program that i dont want to use the toolbox's kmeans but with the matlab's one?
Thanks

4 Comments

You can try these answers:
https://www.mathworks.com/matlabcentral/answers/3167-two-functions-with-the-same-name-how-to-directly-call-one-of-both
Hi, thanks for your response!
These answers are dealing with the case that you have the implementation of both function. In my case i have one function in a toolbox and the other one is built-in matalb function , so i dont think i can use the solutions mentions there.
Why on Earth would you explicitly want to stick with a function-name that is the same as a built-in function - if your function is not some kind of fall-back option for users without the toolbox that supplies that Mathworks-supplied function?
This toolbox has some features i want to use, but specificly with it's k-means implementation it looks like there is something wrong and i want to check it by using the built-in matlab function.
I agree that this is not very good working method, but this is a given situation that i try to find a solution to as simpe as possible, without leading to other problems in my program.

Sign in to comment.

Answers (1)

Jan
Jan on 27 Oct 2021
Edited: Jan on 28 Oct 2021
What about using builtin('kmeans') to call the Matlab version? [EDITED: This does not work. Thanks, Steven Lord]
Did you add your toolbox folders on top of Matlab's folders in the path? This is a bad idea.
Use packages if you really have the need to run different functions with the same name.

1 Comment

kmeans is not a built-in function suitable for use with the builtin function. It is a MATLAB function file included as part of Statistics and Machine Learning Toolbox.
which kmeans
/MATLAB/toolbox/stats/stats/kmeans.m
builtin('kmeans', magic(10), 5)
Cannot find builtin function 'kmeans'

Sign in to comment.

Categories

Find more on Get Started with MATLAB in Help Center and File Exchange

Asked:

on 27 Oct 2021

Edited:

Jan
on 28 Oct 2021

Community Treasure Hunt

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

Start Hunting!