error while try to comply a c code into matlab

3 次查看(过去 30 天)
hello
I am a Phd student at the Technion, Israel.
as part of my research I am trying to implement structural svm learining algorithm on datasets collected in laboratory experiments.
I downloaded a code from github that implement struct svm learning in this link (the packege is attached)
while trying to run it on matlab I recieved this error:
"Error using mex
Deprecated MEX function mexSetTrapFlag was called. Update the source code to use mexCallMATLABWithTrap.
Error in makefile_windows (line 14)
mex -largeArrayDims -c -DWIN ./svm_struct_api.c"
To resolve it i went into the "svm_struct_api.c" file and changed all the mexCallMATLAB functions into mexCallMATLABWithTrap and i still receive the same error
any help in resolving this

回答(1 个)

Karanjot
Karanjot 2023-10-6
Hi Noam,
I understand that you would like to resolve the following error in your MATLAB code:
"Error using mex
Deprecated MEX function mexSetTrapFlag was called. Update the source code to use mexCallMATLABWithTrap.
Error in makefile_windows (line 14)
mex -largeArrayDims -c -DWIN ./svm_struct_api.c"
In releases post MATLAB R2018a, ‘mexSetTrapFlag’ has been removed. The ‘mexCallMATLABWithTrap’ function, similar to ‘mexCallMATLAB’, lets you call MATLAB functions from within a MEX file. In addition, mexCallMATLABWithTrap’ lets you catch (trap) errors. I recommend trying the following:
  1. Replace the occurrences of the now deprecated ‘mexSetTrapFlag’ with ‘mexCallMATLABWithTrap’ in all files in the project, and not just ‘svm_struct_api.c’ file.
  2. MATLAB provides compatibility flags that can help run older code on newer versions. Try using the -compatibleArrayDims flag when compiling the MEX file. Refer to the command below:
mex -compatibleArrayDims -largeArrayDims -c -DWIN ./svm_struct_api.c
To learn more about this, please refer to the below documentation:
I hope this helps!

类别

Help CenterFile Exchange 中查找有关 MATLAB Compiler 的更多信息

产品


版本

R2020b

Community Treasure Hunt

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

Start Hunting!

Translated by