This version is identical to the one provided by matlab with a small change if "FPR" or "TPR" are used for X and Y.
Instead of using the tedious "arrayfun" I used vector cumsum functions.
Here is a test for comparison
N = 1e5;
score = [rand(N,1); rand(N,1)-1];
label = [ones(N,1); zeros(N,1)];
perfcurve(label, score, 1);
Elapsed time is 17.614076 seconds.
Elapsed time is 0.164707 seconds.
I hope you will find it useful.
Hanan Shteingart (2023). faster perfcurve (just in case you use FPR and TPR) (https://www.mathworks.com/matlabcentral/fileexchange/42154-faster-perfcurve-just-in-case-you-use-fpr-and-tpr), MATLAB Central File Exchange. Retrieved .
MATLAB Release Compatibility
Platform CompatibilityWindows macOS Linux
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!Start Hunting!