matlab에서 C파일과 포트란 파일을 동시에 mex 시키는 방법에 대한 조언 부탁드립니다..

글쓴이
루목유
등록일
2012-08-13 17:45
조회
5,549회
추천
0건
댓글
1건
ODE를 풀고 있습니다.

그런데 계산시간이 6시간 걸려서 case study하는데 시간이 오래 걸릴 것 같아 고민하고 있던 중,
Cmex라는 matlab 기능을 알게 되어서 공부하고 있었습니다.

ODE solver는 ode45를 사용하고 있었고, ode45로 넘겨주는 함수 파일을 mex파일로 만드는데 까지는
성공했었습니다. 그런데 ode45안에 머무는 시간도 꽤 길더라구요.

그래서 ODE solver를 찾기 시작했습니다. 대부분 C나 포트란으로 되어 있더라구요.

그런데 제가 matlab에 입문한지 얼마 되지도 않았고 C나 포트란은 6년 전 새내기 때 들은 이후로
사용해본 적이 없어서 거의 아는 것이 없습니다. 새로 C나 포트란을 배우면서 짜놓은 matlab code를
모두 C나 포트란으로 돌리기에는 시간이 너무 걸릴 것 같아서 포기하고 있던 차에, 다음의 사이트를 찾았습니다.

http://www-m3.ma.tum.de/Software/ODEHome

어떤 응용수학자가 ODE solver를 mex 파일로 바꿔주는 과정을 공개해놓았더라구요.
위 페이지 중간 쯤에 How to install and compile the MEX interfaces라는 링크가 있습니다.
http://www-m3.ma.tum.de/Software/ODEInstall

mex -setup을 이용한 방법과 lcc-win32를 이용한 방법, OpenWatcom 1.3을 이용한 방법을 올려놓았습니다.

mex -setup을 이용한 방법이 좋겠다 싶어서 실행을 했는데, 포트란 파일과 C 파일을 윈도우에서는 동시에
컴파일이 안 되는 것 같더라구요.

구글링을 하다 보니, 저랑 같은 웹페이지를 보고 같은 질문을 한 외국인이 있더라구요.

http://www.mathworks.com/matlabcentral/newsreader/view_thread/123492

관련된 답변들에 이해가 안 되는 것도 많았고 한 두가지는 잘 안되더라구요.

지금 현재는 포기한 상태입니다. 빨리 완성을 해야 한다는 압박도 있고,
왠지 네버엔딩스토리가 될 것 같아 반포기 상태였습니다.

조그만 돌파구라도 마련해주신다면 정말 정말 감사드리겠습니다...

  • rockywest ()

      Matlab과 C를 결합해서 많은 일을 하고 있는 사람으로서, 그냥 지나치기 뭐해서 답변드립니다 (질문하신 분, 아직 학생이신가봐요?)

    거기 페이지에 들어가보니, 누가 이런 답변을 해놨지요...

    that's quite easy to achieve: don't use the "mex" function. get a "make"
    program and write a simple make file. the parameters for the compilation
    can easily be found by the -n switch to the "mex" function.

    if you are going to do mixed-language programming (c and fortran) you'll
    probably have to explicitly list the run-time libraries in the linking
    stage for the "non-main" language.


    그 말이 맞습니다. 사실 크게 어려운 일이 아닙니다. 다만 위의 말이 무슨 내용인지 이해가 가느냐 이건데, 프로그램 경험이 조금 있는 사람이라면 별것 아닌 내용인데, 그렇지 않으면 도데체 무슨 소린가 할 수도 있지요.

    여기서 자세히 설명하긴 그렇고, 차라리 근처에 프로그램 경험자를 붙잡고 부탁해서 설명해달라고 하는 게 어떨까 합니다. 그게 훨씬 빠를 겁니다. C언어 수업 한두번 들어보고 예제 몇번 해보고, 그런정도의 경험을 말하는 것이 아니고, 실제로 프로그래밍 일을 해본 사람을 이야기하는 겁니다. 개발,디버깅,라이브버리 빌딩 등의 일 말이죠.

목록


과학기술Q&A

게시판 리스트
번호 제목 글쓴이 등록일 조회 추천
3584 연속체역학이라는 것이 어떤 걸 하는 건가요? 댓글 4 iVector 09-05 8674 0
3583 그래핀 공부 댓글 2 Dipole 09-03 3916 0
3582 모델리카는 어떤 언어인가요. 루목유 08-31 6714 0
3581 광학적 에너지 밴드갭 계산하는 방법좀요 ㅜ 댓글 4 RIASCT 08-30 13262 0
3580 PCB 수명예측(절연열화) 장치 및 시스템이 있나요? 댓글 1 언제나홧팅 08-30 5673 0
3579 제어전공에서 필요한 프로그래밍 언어 댓글 3 박카스 08-27 4469 0
3578 isopentane의 T-s diagram? 뇌부자석 08-24 3665 0
3577 유기EL (OLED) 물질이 몸에 안 좋은 영향을 미칠까요? 댓글 2 팀팩 08-23 4436 0
3576 안녕하세요. 물리학관련 궁금한 것이 있어서 질문드립니다. 댓글 4 이태훈 08-20 3959 0
3575 쓸 만한 백신 및 안티스파이웨어 프로그램... 댓글 1 비행접시 08-13 3426 0
열람중 matlab에서 C파일과 포트란 파일을 동시에 mex 시키는 방법에 대한 조언 부탁드립니다.. 댓글 1 루목유 08-13 5550 0
3573 matlab을 설치없이 web상에서 사용할 수 있나요? 댓글 4 김떡순2 08-08 7429 0
3572 빅데이터 ? ! 댓글 2 kyu7002 07-21 4373 0
3571 Plant에서 토목과 관련된 자료 어디서 볼 수 있을까요!?? Movist 07-16 3168 0
3570 residual stress와 residual strain의 차이 댓글 2 화공인 07-13 5454 0
3569 투과율 반사율 관한 질문입니다. 댓글 2 Dipole 07-11 8143 0
3568 선형대수에서 행렬식(Det)의 의미가 뭘까요,;; 댓글 5 pirsquare 07-02 22508 0
3567 에 관해 질문있습니다~ ^^ 댓글 2 짜파구리 06-26 6053 0
3566 실험 데이터를 논문 저자에게 요청해도 되나요? 댓글 3 루목유 06-21 6376 0
3565 컴퓨터 보안에 대한 질문 댓글 1 비행접시 06-18 3843 0


랜덤글로 점프
과학기술인이 한국의 미래를 만듭니다.
© 2002 - 2015 scieng.net
모바일 버전으로 보기