When I tried to convert the following code to a mex file using coder I've gotten the following error:
Caught "std::exception" Exception message is:Invalid character code sequence detected.
CODE 1:
% Y: new data matrix
% X: training data matrix, each row is one observation, each column is one feature
% type: type of kernel, can be 'simple', 'poly', or 'gaussian'
% para: parameter for computing the 'poly' kernel, for 'simple'
% and 'gaussian' it will be ignored
% K: kernel matrix
% Copyright by Quan Wang, 2011/05/10
% Please cite: Quan Wang. Kernel Principal Component Analysis and its
% Applications in Face Recognition and Active Shape Models.
% arXiv:1207.3538 [cs.CV], 2012.
function K=kernel_NewData(Y,X,type,para) %#codegen
N=size(X,1);if strcmp(type,'simple') K=Y*X';endif strcmp(type,'poly') K=Y*X'+1; K=K.^para;endif strcmp(type,'gaussian') K=distanceMatrix([X;Y]); K=K(N+1:end,1:N); K=K.^2; K=exp(-K./(2*para.^2));end
The above distanceMatrix() has only matrix multiplication and conditional operations.
Then, I have tested also a short code "soma.m", but the error persists:
CODE 2
function c = soma(a,b) %#codegenc =a+b;
Does anybody knows how to solve this?
I'm working on ubuntu 14.04 with gcc/g++ 4.7.
Thanks.
Best Answer