Jeremy W. Langston

Personal Website

Steps for using MATLAB C/C++ Compiler with Visual C++

In Visual Studio:

0)  Create an empty C/C++ project.

 
In MATLAB:

1)  Write the m-file with one function to expose to C/C++.

        function [xp, length] = ExpandArray( x, interval)
        xp = 0:interval:x(length(x));
        length = length(xp);

2)  Create a deployment project (File->New->Deployment Project).

3)  Add m-file to “Exported functions” in deployment project.

4)  Change the settings of the deployment project to put the output directory output to the directory of the source files for the C/C++ project.  Set the Library Name (e.g. “Functions”).
In Visual Studio:

5)  Right-click on the project->Properties.

5a) Under C/C++->General, add the directory of the MATLAB header files to “Additional Include Directories”:

      "C:\Program Files\MATLAB\R2007a\extern\include"

5b) Under Linker->Input, add the directory of the MATLAB libraries and the location of your newly created MATLAB library to “Additional Dependencies”:

      "C:\Program Files\MATLAB\R2007a\extern\lib\win32\microsoft\mclmcrrt.lib"
      "C:\...\Functions.lib", where "..." is the path of the output directory set in step 4

6)  Add the created header file to your project and include it in your C/C++ code where appropriate.

7)  In your C/C++ code, initialize the MATLAB component:

      bool ret = FunctionsInitialize();
      if (!ret){
        std::cout << "Error initializing MATLAB Component Runtime\n";
        system("PAUSE");
        return 0;
      }

8)  Create the input variables to the MATLAB function:

      double x[4] = {1,2,3,4};
      mwArray mwX(1,4,mxDOUBLE_CLASS);
      mwX.SetData(x,4);
      mwArray mwInterval((double) 0.1);
      int nargout = 2; // this says you will be using 2 outputs, xp and length

9)  Create the output variables from the MATLAB function:

      mwArray mwXP;
      mwArray mwLength;

10) Call your function:

      ExpandArray(nargout, mwXP, mwLength, mwX, mwInterval);

11) Get the data out of the mwArrays:

      int length;
      mwLength.GetData(&length, 1);
      double *xp = new double[length];
      mwXP.GetData(xp, length);

12) Terminate the use of the MATLAB component:

      FunctionsTerminate();

 
Notes:

If you only want to return one variable from your MATLAB function, set
nargout to 1 and the return variable will be as such:
  int returnVariable = MyFunction(nargout, inputVariable);

23 Comments

  1. What an amazing guide! Can’t wait to use this when I travel to Amsterdam. This was very informative.

  2. Is your wish-list full of your favorite superstar costumes that you always wanted to have in your wardrobe? It’s time to cross all of them, because we have got everything for you at the cheapest prices ever! Grab your favorites at hiltonsky.

  3. Downloading Iranian pop songs is one of the topics that are searched for a lot on the Internet. Today, pop or popular songs are among the most popular and popular types of music around the world. The popularity of rhythm and poetry is evident, both from singers and performers, as well as from listeners and music lovers in pop songs. This can also be the first and most important source of the general tendency towards this style of music among (https://bit.ly/3jSMSx2) the public.

  4. incredibly helpful and simply explained, thanks so much!
    Ornaments

  5. Hey!
    incredibly helpful and simply explained, thanks so much!

  6. The jackets that we sell are replicas of the coats worn by top television celebrities because it is a growing trend to copy them when it comes to fashion. These celebrities have really become the trendsetters. This leisure was hitherto in reach of only the rich and the rest could only dream about it. But now these jackets are available for all people who want to buy them because of our affordable prices. So we welcome you to come and buy celebrity jackets of excellent quality and know more about us and our products! Leather Vest

  7. An obligation of appreciation is all together for sharing an especially amazing post. It was really helpful. Keep on sharing more substance. Leather Vest

  8. All of our escorts in Islamabad have accessible a large network of escorts and call girls at Islamabad.
    We give you top escorts at any given place. Escorts in Islamabad females provide their moment into their customers to receive their desires, and they’re exceptionally
    proficient women that are therefore much careful into some of their customers demand and possess professional approaches
    to create the finest and also understand just how to continue to keep things in well mannered way,
    thus have an exhaustive appearance on your Gallery on the perfect girl then call or text us to be in touch with.

  9. All of our escorts in Islamabad have accessible a large network of escorts and call girls at Islamabad.
    We give you top escorts at any given place. Escorts in Islamabad females provide their moment into their customers to receive their desires, and they’re exceptionally

  10. Very interesting, good job and thanks for sharing such a good blog. your article is so convincing that I never stop myself to say something about it. You’re doing a great job. Keep it up

    captain america leather jacket

  11. Well, I don’t have much idea about it and I think Matlab is only doing numerical maths so it might be very restrictive in the data structure.
    Thanks, dear for sharing your ideas. I really love your whole blog.

  12. The article I see the need and importance of the information it provides. We hope the article provides such good information in the future.
    https://crackcool.com/iobit-protected-folder-crack/

  13. Thanks for such an amazing content. https://www.homatz.co.uk/

  14. We will like to introduce our Firm as manufacturer and exporter of high quality Garments
    koszulowa kurtka

  15. chicago bulls jersey jordan 23 worldwide towards entire satisfaction of our valued customers.

  16. Website design company in Salem , >Website design company in Chennai , logo design nike air vapormax flyknit 3

  17. Thanks for your incredibly helpful and simply explained!

  18. Did you know? That concrete is the single most widely used building material in the world? Khoan cắt bê tông Đồng Nai

  19. Did you know? That concrete is the single most widely used building material in the world?

  20. Make your style stunning by wearing this Kate Upton Astros Jacket this jacket is made from high-quality material and you will never disappoint with the quality of this so don,t think anymore just click and shop now.

  21. Looking for a party hall in Hyderabad? Check out our list of the best party halls in Hyderabad, complete with photos, prices, and reviews!

  22. Onroadz Cabs is one of the most reliable and affordable taxi service providers in India. onroadzcabs.com Coimbatore taxi website offers our customers a wide range of taxi options for their daily commute, including hatchbacks, sedans, and SUVs.

Leave a Reply

Your email address will not be published.

© 2022 Jeremy W. Langston

Theme by Anders NorenUp ↑