Any open source software like matlab? [duplicate] - open-source

This question already has answers here:
Closed 13 years ago.
Possible Duplicates:
free matlab environment
What’s the best MATLAB equivalent? (open source or otherwise free)
Please suggest any open source/free software equivalent to Matlab for windows with same syntax which is best and widely used

GNU Octave is the closest replacement, it supports large parts of the Matlab syntax, plus incorporates several improvements (IMHO) to the language.
But if you are familiar with python I suggest you also take a look at SciPy. Powerful language, a lot of libraries, and active development in scientific libraries (plotting, calculus, etc.). Use the ipython interactive shell.

First the obvious choices for MATLAB alternatives:
Octave
Scilab
Python + NumPy + SciPy + matplotlib
R
FreeMat
And here's a number of similar environments:
RLab [discontinued]
Mathnium (Freeware)
Sysquake LE (Freeware)
O-Matrix (Commercial)

octave is mostly compatible with matlab. You can read more about the differences here.

Octave is a free Matlab-like program that a lot of people seem to like.
This site has a whole list of free alternatives:
http://www.math.tu-berlin.de/~ehrhardt/matlab_alternatives.html

While studying in the University, I personally used Sage for al my lab and course papers calculations :-) What I love about it, is that you don't need to learn new language if you know python already.

The most popular alternatives are: Octave and Scilab (www.scilab.org).

Related

Any open octave development projects for mathematician/physicist programmers versus classdef?

At first I was excited about working on open development projects for Octave related to implementing programs heavy in mathematics and physics, such as delaunayTriangulation class, but after talking to a few octave maintainers I have come to the sad conclusion that Octave will be complete after classdef is complete, at which point physics or mathematician like programmers will no longer be needed to build new functionality to Octave. Is this true?
I have followed your thread on the Octave maintainers mailing list and I think you have misunderstood this quite badly.
Once classdef gets implemented, the problems won't be solved, quite the contrary. It will allow for many problems to be solved, which can't be done just yet in a Matlab compatible way. There are 2 things here:
you may have felt that there's no problems left to solve after seeing many suggestions of libraries that already solve the problem. That doesn't mean they will be used. Even if licensing allows it, there comes a point where having to "reshape" the data in Octave into whatever form the other library uses it, is just too much and a native interface is preferred. This is specially true in Octave because it's mostly written in the Octave language which allows for users to participate in its development.
Even if an external library is used in the end, remember that "the devil is in the details". Implementing an interface between Octave and an external library is not a trivial problem.
When classdef is complete, the work will start, not finish. And classdef is already working on the development version, so if you are interested in those classes, you could start implementing them there and they'd be released with the next version. To continue development of classdef, Octave needs that people it, so that it's problems can be found. And the delaunayTriangulation class requires classdef. It looks like a great pair, that should be developed together.

Is Octave compatible with the CobraToolbox?

I need to use the CobraToolbox for a course and I am wondering if it is compatible with Octave.
Even googling for this doesn't return much results..
Thanks in advance
Unless someone has published their results, you can't know without trying it. However, there is a very high likelihood that it will work on Octave, here's what Jordi has to say on this issue answering this question.
I am new to Octave and was wondering if it is possible to use matlab
toolboxes in Octave?
It depends on what you mean by "Matlab toolbox". If you mean the code
that came with Matlab, it's probably a license violation to use it
with Octave, assuming you can compile it for Octave when it's
necessary to compile.
If you mean free code out there you found on the internet that was
written for Matlab, it is likely it will work on Octave. Just try it.
If you need to compile mex files, the "mkoctfile --mex" command may be
of use.
If you want to have a rough equivalent of the Matlab toolboxes in
Octave, try the Octave-Forge packages:
My personal experience is that Octave has become extremely good at accepting Matlab code. I would hazard a guess that any time you spend setting up Octave and this toolbox will be worth it. Even the MEX files appear to have a portability mechanism. Unless they are using some very specific features like addpref for toolbox persistent data, it will slide right into Octave. Even if they are using the prefs, it could be modified to live in Octave.

What is good Tcl compiler [closed]

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 10 years ago.
I want to learn Tcl programming, but I`m having trouble with compile source code. I need good compiler tool. Can you help me? What compiler should I use or the best one?
Thank you !!!!
Tcl is a programming language. It has a number of implementations, but the one you are most likely to be able to get hold of is tclsh. Linux-based systems often have one already installed (if not, there'll certainly be a way to get it from your distribution's package repository). On Windows, the ActiveTcl distribution from ActiveState is highly recommended. I don't know if all MacOS X systems have it (mine did) but you are recommend to get ActiveTcl anyway as that also includes many extra useful packages for things you can do with Tcl, and is also more likely to be up-to-date.
You might also encounter the wish and expect programs; these are actually little more than tclsh with an extra library loaded into them and pre-activated for you. (For wish, that library is Tk which does GUIs, for expect that library is Expect which does terminal interaction.) The Tcl they include is the same as in tclsh, but has some extra commands.
When asking future questions here about Tcl, it helps a lot if you mention the exact version (as reported by Tcl's info patchlevel command) that is being used.
In terms of compilers, you don't normally need one. The implementation engine used by tclsh actually does dynamic compilation of your Tcl program (to a bytecode) as necessary, and is so fast that it is actually slower to load bytecodes than to recompile from scratch. (We did some tests and decided that, whatever speedups we should do, saving bytecodes were not going to be a part of the strategy as there was no point.) The only real case for using a compiler with Tcl is where you are using it to obscure the code, to make it hard for a user to look at and change. But the only sane scenario for that is when doing commercial apps (it's against the basic principle of Open Source Software) so if you need it, you are going to be directed to a commercial solution. (ActiveState sell such a product.) OTOH, if you're really thinking more about packaging — putting your code together in a neat parcel — then we have a different technology for that, the starkit, which is very neat indeed. But that's getting a bit further off the topic…
If you are using linux, you probably have Tcl already installed in your system. Type tclsh in the console and see if it works, or look for Tcl in the software installation tool.
If you are using Windows or MacOSX, you can download it from ActiveState here.
tcl is a scripting language (and, IMHO, not a particularly good one; Ruby, Python, Ocaml, Lua are better in my opinion). Its implementation is usually not compiled (perhaps some experimental implementations might use JIT techniques). Tk is a graphical toolkit built above the Tcl interpreter.
In particular, there is no "compilation" step to use Tcl (because you don't need any "compiler" to use -i.e. code some scripts in- Tcl); you just need its interpreter. (You may need a C compiler to build the tcl interpreter from its source code, you usually can install the interpreter binary; details depend upon your system).
So you just need to use your editor (e.g. Emacs, Gedit or even Notepad if you are restricted to Windows) to begin coding some Tcl scripts.
If you are learning to code, I strongly suggest to learn some better programming languages (e.g. Scheme or Ocaml or Python) before learning Tcl. The lack of modularity in Tcl will bite you quite soon!

How should I structure my TCL code?

Im new to TCl-facing some problems learning it.
However I need to know if any one of you have some script or any idea so that I could make my code more structured ie more readable
Personally I would recommend this and this articles by Will Duquette, if we're talking about "plain" Tcl (that is, not armed with any extensions aimed at better structuring).
You can do object orientation with Tcl, too. Tcl 8.6 will be equipped with a core OO package, but there is a whole lot of readily available OO frameworks. Personally, I've successfully used Snit as a plain Tcl OO system.
This "TCL for Web Nerds" book by Philip Greenspun is very easy to read, and while it's a bit dated, is a great introduction to TCL (especially if you're doing any web programming). I still refer to it occasionally along with the TCL manuals and the Wiki (although to be honest I often the wiki too obscure for many of my needs).
Except for #kostix excellent "advanced" answer, take these basic Tcl beginner tips into account:
avoid the global top level for writing your code, pack in into Proc-edures
avoid global variables and use namespaces (see answer #kostix)
learn about upvar to pass variables by reference
read other tcl code examples by other experienced tcl users

Binding Software

Is there a software for Language Bindings, other than SWIG. Also which is the most efficient ? I am looking for efficiency for C++ to Python bindings.
There are 6 (main) alternatives when it comes to binding C++ and Python:
SWIG - as you already know
Boost.Python - that was the advice of lefticus
Cython - very neat syntax close to Python
SIP - not very much spread, but it is there
PyBindGen - claims to be the fastest
ECS:Python - new stuff
In terms of efficiency, I guess that will depend on what the task is. If you browse a bit around the net, you will see benchmarks around. PyBindGen folks are actually very proud of their system. You may want to start having a look there.
Particularly, I have experience with Boost.Python - easy to learn the simple tasks, a bit more tricky to do the complicated stuff. Normally generates code which is not the fastest from a function call overhead perspective, but it works beautifully. This one is very mature.
I cannot speak to efficiency, but the only other C++ to Python binding tool I am aware of is boost::python.