free MATLAB environment - matlab

I'm learning the MATLAB language and would like to have some kind of free environment to experiment with. The MATLAB environment provided by MathWorks is commercial. There appears to be a trial available, but I can't figure out how to get the trial license.
For the moment, all I need is a command-line and the "standard libraries".

Octave is mostly compatible with matlab: http://www.gnu.org/software/octave/

If you are just starting with MATLAB I would strongly suggest to go the Python path instead (unless there is some very specific reason why you must use MATLAB). The basics (like array / matrix operations) are very similar to MATLAB.
In my current area of work (neuroscience) there is a strong migration from MATLAB to Python. Many groups are making the switch because Python is free and generally more powerful.
The basic packages you will probably need to get started would be numpy (basic array numerics), scipy (more algorithms) and matplotlib (plotting). Since you want to work on the command line I suggest IPython as well.
As already mentioned in another answer there are also some Python distributions which include many packages, like PythonXY, the Enthought Python Distribution, or Anaconda.
There are many tutorials available on the web, search a little and pick one you like.

Look into these:
Scilab
Octave
Sage
Read this blog entry from Ryan Morlok for more info on open source Matlab alternatives.
I'm a big fan of R, but it's not a substitute for Matlab... it's an alternative. There's a big difference!

I was recently enamoured of Python XY. It's not exactly like Matlab but it has many of the same functions and copies the look and feel. I would personally use it if I didn't want to buy a Matlab license though - not if I wanted to practice with a Matlab stand-in.
www.pythonxy.com

Other users have given you the examples that I would have suggested - Octave and Scilab. Of the two, I would say that Scilab is more powerful BUT Octave tries really hard to be source compatible with standard MATLAB and Scilab does not.
So, if your aim is to experiment with a MATLAB like language and learn skills that you will eventually be able to transfer over to MATLAB then I suggest that you stick with Octave.

If you're interested in trying things out in MATLAB directly, there was a recent blog entry on The MathWorks website regarding free trial downloads of MATLAB and its various toolboxes. If you haven't tried contacting them already, the blog links to this page where you can request product trials or, if you already have a licensed product, you can sign in and downloads trials of toolboxes.

Related

Trying to add an add-on with an license that covers it but am being forced to buy it

My university has a total headcount license that covers all major add-ons. I was able to install it, alongside the two add-ons I need (Image Processing Toolbox and Computer Vision System Toolbox) at home with the install wizard.
However, in the lab when I try to add these add-ons to my matlab environment (even when logging in) via the 'Get Add-Ons' option in the menu (Add-On Explorer), I am forced to 'Buy' each toolbox. i.e. I am not offered the option to download it, despite it being covered in my license. Any idea how to get this working/ alternative method?
I should also note, it's not possible to reinstall Matlab as I do not have the permissions required.
For anyone who arrives here after me, just use Matlab Online. Bit of an workaround but it's the only solution I found.
https://matlab.mathworks.com/
This does not exactly answer the question, but nowadays it is not essential to stick to Matlab. Python with OpenCV and Numpy, R are basically free options with no license hassle and lots of support. Plus, you will be able to use your code after graduation :o)

Easiest was to share group project code written in MatLab

We are working on a group project written in MatLab. We all need to be able to access and write the same program, sometime simultaneously. We are working on a scientific Linux distribution. We are all physicists so we would rather find a very simple - ideally GUI, solution.
It sounds like GitHub would enable us to write simultaneously and merge mismatched code but it seems so complicated. We don't really understand the push/pull/fork/commit terminology and we would rather not study it if there is an easier option.
What is the path of least resistance for a group project in Matlab?
I regularly use Subversion for group MATLAB projects. It has what I find a slightly simpler workflow than Git/GitHub.
The latest versions of MATLAB integrate directly with Subversion, so you can check things in and out directly from within the MATLAB workspace. Alternatively you can use TortoiseSVN, which integrates within Windows Explorer (I believe there is an equivalent for Linux as well).
However, I'll speak bluntly - Git and GitHub are really not that hard, and I'm pretty sure that anyone who's clever enough to be a physicist working with MATLAB is clever enough to understand them as well. Although Subversion is a bit simpler to learn, Git and GitHub have a lot of advantages, they integrate well with many other services, and they're just overall kind of better. The latest versions of MATLAB integrate directly with them in the same way as with Subversion.

MATLAB : Learning by self

I have self skilled on MATLAB basics and its functionalities. However I found that project implementation in MATLAB is subject to theoretical information on same domain. Being from a non-engineering field I am finding it quiet difficult to implement short projects.
I tried to search for websites which has a few free MATLAB projects source code available or MATLAB projects source code hosted - I wished to pursue, read and parse the implementation, but could not find any. Website either hosted the zip file having empty / incomplete codes.
Please let me know if there is a genuine / good website where free MATLAB project source code is available? It would be best if it has something related to DSP, Image Processing and Numerical Analysis.
Thanks in advance.
http://www.mathworks.com/matlabcentral/fileexchange/
there are many many solved problems there.
look for the higher rated ones, and read through.
enjoy
I found the textbook by Maghrab to be very useful.
http://amzn.com/B008ITDEKI
It is not a website, but it was really quite good.
When you say 'projects' do you mean engineering-related tasks, or do you mean something else?

How can I package a MATLAB application that utilises toolboxes?

I want to package up an application in MATLAB for another team to use. They will have an appropriate version of MATLAB to run this application, but they might not necessarily have licenses for all the toolboxes used by the application.
Is there a way to "bundle" the toolboxes into the application so that they do not require expensive licenses to run it?
If not, is it possible to create a stand-alone/license independent MATLAB application a different way?
EDIT: Some of these applications might feature GUIs as well as command line interfaces.
To generate code that can be run by MATLAB, you need the MATLAB Coder. The codegen command will generate the executables that can be run in MATLAB. Loren of MathWorks has a nice blog post on the product.
Here is an example of how to use codegen to create a MEX function from MATLAB code.
One big caveat is that with MATLAB Coder, the complete functionality of MATLAB is not yet available for compilation. This is because the generated binaries do not require the MATLAB Compiler Runtime (MCR), which is essentially a headless MATLAB virtual machine. Instead MATLAB Coder generates C code that is truly standalone, but the code generation is somewhat limited as a result. Here is a description of the subset of functionality, and here are complete lists of functions supported. Most toolkit functions appear to be supported according to the categorical list.
If the required functions are not supported, then it will be necessary to use the Compiler to generate standalone libraries and roll your own MEX interface to those libraries, as MrAzzaman indicated. Another possibilities is to use the loadlibrary function to directly load the Compiler-generate libraries, although I have never tried this last option. If you can't successfully interface with these libraries back in MATLAB, the MATLAB compiler can of course be used to generate a standalone executable. The deploytool simplifies the process of packaging the code and its dependencies.
The MATLAB Compiler sounds like exactly what you need. Unfortunately, it is a separate Toolbox which you would have to purchase.
EDIT: I should note that this will compile your MATLAB code into an application/library, not MATLAB code. The other team would still be able to use it with MATLAB, I believe, but I don't think they would be able to see the code itself.

Matlab Vs. Maple for curve fitting to data, finding eq'n of curve then integrating through code

Im sure there are a thousand different posts on Maple vs Matlab, but i have a bit of a unique set of requirements and before i go off to learn one of the two i would like to know which one will do it best.
I have a set of data from an accelerometer recording an impact. I need to do the following:
fit a curve to the data
Find the equation for that curve
solve the equation listed at the link
http://upload.wikimedia.org/wikipedia/en/math/2/d/3/2d39556df1dbbd467dc914253e93cdb0.png
which solves for a family of curves,i.e the MAX under the interval.
I would like to do this as seamlessly with visual studio as possible. The GUI and all the other elements of the app are built in VB and I would like to keep it there. I know maple has a code generating part to it that will convert to VB, would it be able to handle something like this? Does Matlab integrate with Visual Studio well? I would be thrilled if there was an object i could place on the VB form which would facilitate the communication to and from the matlab or maple framework. Currently i have it working with R, however to do so i need to write the data to a file, launch the R script, wait for it to finish, return control to my VB app and take it from there. This process takes too long and since i do not have experience with multi threaded programming the GUI freezes up when control is passed to the script.
Any help or suggestions would be very much appreciated!
In your case I would choose neither of the two. You may have a look at Python Tools for Visual Studio. The blog post mentions support for NumPy & SciPy for .Net which gives you all the math power you need at hand well integrated in the .Net world.
EDIT:
By looking at matplotlib's gallery I'm tempted to say that matplotlib is on par with MATLAB.
MATLAB doesn't auto-generate VB code, but it can easily be called from a VB application without the indirection of writing a file. It has COM interface that can be called directly from within VB code. See this example from the MATLAB documentation to find out more.
To carry out the technical analysis you've mentioned, you would probably save time by using Curve Fitting Toolbox in addition to base MATLAB.
Note that the above method of connecting to MATLAB via its COM interface relies on there being a live copy of MATLAB present when the VB application is executed. If you need to share your application with people who don't have a copy of MATLAB, you can also create standalone COM components and .NET assemblies from MATLAB code that can be called in the same way by your VB code, but can be deployed freely to people without a MATLAB license - however, this requires an extra product, MATLAB Builder for .NET.