2013-04-29 2 views
0

나는 M- 파일을 cpp- 파일로 변환하기 위해 MATLAB 코더를 사용했다.matlab coder 은밀한 m 파일을 C++로 변환합니까?

건물이있을 때 문제가 발생했습니다.

논리적, char, int, fi, 단일 또는 이중이어야합니다. mxArray를 찾았습니다. MxArrays는 호출에서 MATLAB 인터프리터로 반환되며 표현식에서는 지원되지 않습니다. 할당의 오른쪽에 그리고 외부 함수에 대한 인수로 사용되는 것은 일 수 있습니다.

MATLAB 코드 :

nms = sum(transpose(X).^2); 
nms0=-1 * nms; 
nms2=transpose(nms0); 
nms3=transpose(X); 
nms4=nms2*ones(1,n); 
nms5=ones(n,1)*nms; 
nms6=2*X*nms3; 
nms7=zeros(150,150); 

nms7=nms4-nms5; //This line is wrong 

nms8=nms7 + nms6; 
K = exp(nms8); 

내가 코드를 MATLAB에서 올바른 실행 된 이유를 알고 싶어하지만, 당신의 결과를 사용하려고하면이 오류가 발생

답변

0

을 구축 할 때이 오류가 표현식에서의 외래 함수. 제공 한 코드에서 "n"또는 "X"는 외부 함수의 결과입니까? 외부 함수의 결과가 직접적이지 않은 경우에도 다른 외부 함수의 데이터를 기반으로 계산되었을 수 있습니다.

문제를 해결하는 한 가지 방법은 MATLAB 코더가 이러한 외 부 데이터를 알려진 유형으로 변환하는 것입니다. 알려진 데이터로 사전 정의하여이를 수행 할 수 있습니다. 예를 들어,

coder.extrinsic('some_extrinsic_fcn'); 
y = zeros(10,1); 
y = some_extrinsic_fcn(); 
y = y * 2; 

이 경우 some_extrinsic_fcn은 10 개의 요소가있는 배정도 벡터를 반환해야합니다. 이렇게 생성 된 mxArray는 자동으로 변환되어 y에 저장됩니다. "y = zeros(10,1);"행이 없으면 y는 mxArray 유형이고 "y = y * 2;"행은 오류를 발생시킵니다.

관련 문제