Cause of problem:
1. The function name is the same as the file name
2. Missing \vlfeat-0.9.21\toolbox\mex\mexw64.
File directory:
\vlfeat-0.9.21\toolbox\sift\vl_sift.m
Error: function Directory:
[ kp1,ds1 ] = vl_sift(single(rgb2gray(img1)),'PeakThresh', 0,'edgethresh',3);
Solution:
1. Rename vl_sift.m to vl_sift1.m to solve it perfectly.
2. Copy the mex folder from other projects to \vlfeat-0.9.21\toolbox directory
vlfeat-0.9.21 version may have this problem. vlfeat-0.9.14 version mex is basically compiled. So there is no such problem.