2010-11-27 6 views
2

안녕하세요, 저는 C 프로그램에서 MATLAB을 외부 솔버로 사용하는 방법을 알고 싶었습니다. 특히 내 코드에서 은 Ax = b 형식의 여러 선형 시스템을 해결하기를 바랍니다.C/C++ 프로그램으로 MATLAB 인터페이스하기

나는 다른 방법 즉, MATLAB 루틴에서 MEX 파일을 사용한다는 것을 들었습니다. 그러나 Mex 파일을 사용하는 방법을 잘 모르겠습니다.

는 MEX 파일 당신이 matlab에 외부 C 라이브러리를 사용하려는 경우 예를 들어 매트랩 프로그램에서 C 코드를 포함 할 수 있도록,

+1

[어떻게 C에서 MATLAB 코드를 호출합니까?] (http://stackoverflow.com/questions/1513583/how-to-call-matlab-code-from-c) – gnovice

답변

0

Lagerbaer가 지적한대로 matlab 엔진을 사용할 수 있습니다. 그러나 때로는 그냥 matlab 프로세스 명령 줄 스타일을 호출하는 것이 편리 할 수 ​​있습니다. mxArrays 등을 사용하고 싶지 않을 때나 실행이 필요한 MATLAB 코드의 양이 너무 커질 때 이것을 자주 사용합니다. 의사 코드 : 물건을 테스트 할 때 나이 들어

WriteArrayInMFormat("in.m", myInputNumbers); 
LaunchProcess("matlab", "-nodesktop -r \"myFunction('in.m')\" -logfile out.m"); 
ReadArrayInMFormat("out.m", myResult); 

특히 유용합니다 : 대신 C/C++ 프로그램에게 뭔가를 변경할 때마다 다시 컴파일 할 필요없이, 그냥 myFunction.m 파일의 모든 변경 사항을 적용합니다. 그 시점에서 나는 심지어 C 프로그램을 필요로하지 않고 대신 모든 것을 matlab에서 테스트 할 수있다.

1

사실에 감사드립니다. 당신이 원하는 무엇

이 matlab에 엔진을 사용할 수 있습니다 : 다른 방법으로 http://www.mathworks.com/help/techdoc/matlab_external/f29148.html

을, 당신은 LAPACK 및 BLAS와 같은 C에서 순수하게 작성된 선형 대수 라이브러리를 사용할 수 있습니다. (www.netlib.org)

+0

나는이 링크를 전에 보았습니다. 그리고 나는 그들이 언급 한 명령을 따랐다. 그러나 그들은 나를 위해 일하지 않았다 .... 2 질문 : – smilingbuddha

+0

1) MATLAB을 사용하기 위해 C 코드를 열어야 하는가? 아니면 MATLAB이 직접 시작 하는가? – smilingbuddha

+0

2) 코드를 컴파일하려면 어떻게해야합니까? 특히 Makefile에 무엇을 써야합니까? 나는 우분투 10.04를 사용한다. – smilingbuddha