Speed up matlab program with .dll file

조회 수: 8 (최근 30일)
Tuan
Tuan 2012년 11월 13일
Hi all,
I have a Matlab code with 4 for loops, and 1000 iterations for each loop. This code takes time and I would like to speed it up. Since the code can not be transformed into a vectorized version, so I think about converting M-Files to stand-alone applications (.dll for example). But I'm not sure if this can really make the execution faster. So if you have some experience about this, please share it to me.
By the way, if you know a easy method to convert a M-Files to a .dll file, can you tell me. Thank you in advance for your help.
Best regards,
Tuan
  댓글 수: 2
Kaustubha Govind
Kaustubha Govind 2012년 11월 13일
편집: Kaustubha Govind 2012년 11월 13일
Please follow Jan's suggestions about whether your MATLAB code will be faster if compiled into C code, but just wanted to give you a heads up that one suggested way of accelerating MATLAB code is to generate a MEX-function from it using MATLAB Coder.
Tuan
Tuan 2012년 11월 13일
This is very useful to me. Thank Kaustubha Govind.

댓글을 달려면 로그인하십시오.

답변 (1개)

Jan
Jan 2012년 11월 13일
Without seeing the code, we cannot guess, if a compiled version will be faster. Usually a compilation does not lead to substantially accelerations, while an optimized code or a manual creation of a Mex file will.
Please post the relevant parts of the code with typical input values. If we can run it, I assume we find some improvements.
  댓글 수: 3
Jan
Jan 2012년 11월 13일
Where do I find the "second 3 for loops to calculate Q"? This is quite a big piece of code and without helpful comments it is impossible to keep the overview. Some of the lines are monsters and splitting them to smaller parts as well as using temporary variables for repeatedly calculated values would increase the code but most of all improve the readability.
Tuan
Tuan 2012년 11월 13일
Dear Jan Simon,
Sorry about my fuzzy code. I have reedited the code as your suggestion by preserving the main part that I'm worry about (see above section). The "3 for loops " is in the StaLaw3DFuncDelTRpRuStra function. A new value of Q is reused as input of trapz(), so a vectorized version of for loop is impossible. So, any way to speed up the program? Thank you!
Tuan

댓글을 달려면 로그인하십시오.

카테고리

Help CenterFile Exchange에서 Loops and Conditional Statements에 대해 자세히 알아보기

제품

Community Treasure Hunt

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

Start Hunting!

Translated by