General
Follow


License Inquiry: Integrating Matlab Functions into In-House Software for Commercial Use

Seiya on 23 Oct 2024
Latest activity Reply by Walter Roberson on 27 Oct 2024

I have one question.
Would it be possible to purchase Matlab for our company and incorporate the functions provided by this software into our in-house developed software to offer it to customers? Is this kind of action permitted under the license terms? I would appreciate advice from someone knowledgeable on this matter.
Walter Roberson
Walter Roberson on 24 Oct 2024
There are three possibilities here:
  1. You are offering MATLAB source code to your customers. In this case, your customers would need to purchase MATLAB licenses themselves (including licenses for all of the toolboxes you need). You would be permitted to call any MATLAB functions. You would retain the rights to the MATLAB code that you write.
  2. You use MATLAB Compiler to compile MATLAB source code into an executable. In this case, your customers would not need to purchase MATLAB licenses -- they would only need the executable. You would need the MATLAB Compiler toolbox to do this; your customers do not need any toolbox license. You are permitted to sell access to the executable. There are a restricted set of functions and toolboxes that can be compiled. Much of MATLAB can be compiled -- but for example nothing in the Symbolic Math toolbox can be compiled. The executables share a great deal of technology with MATLAB, so compiled executables have much the same startup time as MATLAB sessions, and execute at much the same speed as MATLAB sessions. The executables you produce have to be special purpose, and cannot provide general access to MATLAB functions.
  3. You can use MATLAB Coder to compile MATLAB source code into C/C++ code and incorporate it into your own projects. In this case, your customers would not need to purchase MATLAB licenses -- they would only need the final project you build. You would need the MATLAB Coder toolbox to do this; your customers do not need any toolbox license. You are permitted to sell access to your project. There is a much more restricted set of functions and toolboxes that can be compiled, and code typically needs to be tuned to use with MATLAB Coder. I am not sure that any graphics are supported. The C/C++ source code produced does not share basic technology with MATLAB, so the C/C++ source code is typically faster for basic variable access and small arrays. However, the C/C++ source code does not call into high speed mathematical libraries, so the C/C++ source code is typically slower for vectorized mathematics and linear algebra.
Gregory Vernon
Gregory Vernon on 27 Oct 2024
Out of curiousity, @Walter Roberson, is the reason the Symbolic Toolbox can't be coompiled via the Compiler Toolbox a technical reason or a licensing / business reason?
Walter Roberson
Walter Roberson on 27 Oct 2024
I am not entirely certain; I suspect it is a mix of issues.
The implementation of the Symbolic Toolbox involves a completely seperate executable. Compiling would necessarily involve merging that seperate executable with the CTF or else providing the seperate executable. I am not at all certain how feasible either possibility is. Either way there are technical issues to be overcome.
But I am also aware that the seperate MuPAD engine is inherently general purpose. It would be difficult to reconstruct the engine to provide access to only particular algorithms compiled into the executable, so it is fairly likely that the engine would continue to be general purpose -- and so open to exploitation as a general purpose symbolic engine while in compiled form. People could write interfaces that accepted general expressions and evaluated them through the engine and got results. Preventing this kind of general exploitation could be said to be a licensing issue.

Tags

No tags entered yet.