MATLAB Answers

1

As a Software Engineer, Why should I use MATLAB?

Asked by NOUFAL THANGAL R on 27 Jun 2012
Latest activity Commented on by Walter Roberson
on 14 May 2019
If I have knowledge on many other High level languages like Octave, SciLab, Maple,etc, Why should I learn and use MATLAB. What is the reason for which I should prefer MATLAB?

  3 Comments

TAB
on 27 Jun 2012
You will not ask this question once you started using it.
This reads like a question from an assignment.
Jan
on 27 Jun 2012
@Walter: Or a TMW product manager ran out of arguments for the new advertisement strategy.

Sign in to comment.

Tags

7 Answers

Answer by Mani
on 27 Jun 2012
 Accepted Answer

The answer is same as why man started using a calculator when abacus was availabe. In this complicated world we can simplify many problems if we know part solutions to it . Matlab has a rich set of toolboxes which allow you to break down many complex problems . These toolboxes can be built in any language but if you get everything in one place why leave it . Plus you can concentrate more on the problem than the way to solve it.

  2 Comments

Jan
on 27 Jun 2012
I think Noufal wants to know, how Matlab supports concentrating on the problem compared to "other" high-level languages. Perhaps he means C++, Erlang, SciPy, Octave, SciLab, Maple. Mathematica and R. I'm convinced he does not mean C, Fortran77 and Cobol.
@Jan, You are right. Thanks. I have edited my question after your Comment.

Sign in to comment.


Answer by James Tursa
on 27 Jun 2012

It's fun.

  0 Comments

Sign in to comment.


Answer by Paul Metcalf on 27 Jun 2012

MATLAB is mainly used by scientists and engineers who are involved in numerical and technical computing. Most of these people use MATLAB because they are able to obtain the results they need quicker than by other means. This is probably the case because:
  • MATLAB has a long history of refinement, and
  • Has very good user documentation and a helpful support community, and
  • Has a very large library of built-in pre-written functions for many common numerical computing tasks, and
  • Is quite an informal language, allowing newcomers to get going and get results quickly.
As the term "software engineer" refers to such a broad field, it is almost impossible to answer your generalised question more specifically than this.

  5 Comments

Jan
on 27 Jun 2012
@Walter: Exactly. And I wanted to know, if Paul's statement is based on these statistics. As far as I know the results of these forms are not made public.
I assume that most students and employees in the industry do not create a login profile or ask for a product demo. My personal impression is very biased, because most of the Matlab users I know are physio-therapists, biologist and physicians without a deeper knowledge of numerical or technical computing - they are "users", not programmers.
In my personal University experience, Matlab is used widely in the bio and chemical engineering education/research world. Many of these students/faculty/researchers are capable of learning and even know and occasionally use other other programming languages, but prefer to use Matlab because of its power and ease of use (as pointed out the toolboxes are time saving and powerful).
I also have run into many biologists and physicians that use Matlab to run scripts/algorithms with minimal programming knowledge (often running programs written by engineers). That speaks the power of Matlab. Not only does it satisfy those looking for a more traditional programming environment, but it is intuitive enough to be used by people that have minimal programming knowledge.
Decent answer and informative comments.

Sign in to comment.


Answer by Geoff
on 27 Jun 2012

From one developer to another, the answer is: why not??
What do you have to lose from having another tool (or rather, arsenal) at your disposal?
If you have to justify even considering learning a new language/environment that is widely used across the planet, then perhaps you don't have the innate curiosity that makes a well-rounded software professional =P

  0 Comments

Sign in to comment.


Answer by Jan
on 27 Jun 2012

Matlab is very stable and well tested. I can still run my first programs developed for Matlab 4.2 (1994), when I consider the handfull of changes in the core-functions. The methods for debugging are powerful, but the tools for code or project management are in its infancy. The documentation of the functions is near to perfect: clear help texts, exhaustive docs for each command, but unfortunately no version history to find out, in which release a specific command has been added or modified. But the Matlab community and the support are very helpful to clear such and other questions or problems.
I assume, that the integration of Java for the GUI elements reduces the compatibility in the far future. When you try to use smart UI controls like UITrees, UITables or UITabs, there are even incompatibilities in the last few years and the main part of them is not documented at all.
My conclusion: MATLAB is a good choice, if you want to create programs, which are very reliable, stable and platform independent, and use GUIs looking older than the Atari ST (1986). If you develop projects in a group, additional external management methods are required urgently (yes, Walter, I think the term is correct here).
I personally like the clear and compact notation of array operations. This reduces the size of my code by about 75% and makes dull indexing bugs less likely. I can discuss with other Matlab users about A + B without needing to specify, which compiler, compiler flags and libraries I'm using. While I frequently get mails of upset hardcore programmers, when I dare to use C-99 style // comments in a C-source code, the Matlab community is cool and concentrate on real problems (as long as the code is not spoiled by eval, clear all or global).

  1 Comment

Last line of the 3rd paragraph made me chuckle.

Sign in to comment.


Answer by Jason Ross
on 27 Jun 2012

As a software engineer, you will be expected to use the tools, procedures and review processes of the organization which employs you and pays you. If it's a group that does significant amounts of their coding and development in MATLAB, then that's a powerful motivation, and you will be able to inter-operate with them on development projects, share code, re-use code and do all the things that happen when there are large projects going on.
It's the same reason you might use C++, C#, Java, PHP, MySQL, assembly, C, Python, Perl, HDL, HTML, Javascript, XML or any other programming language -- you have a task that needs doing, and you use the tools at your (and your organization's) disposal to design and implement the system -- and you might need to use several of the above (or more I haven't listed) to achieve the desired result.
Since this sounds like a "student" question, I'll let you know that whatever set of languages you are studying and using now, you'll likely be missing a few when you start looking for a job -- but that's not really a bad (or unusual) thing because the language landscape is very diverse and ever-changing as old languages are superseded by new ones that don't have the compatibility restrictions of the old ones. And then the old ones continue to soldier on because whatever they are doing, they are still doing it quite well. Look at FORTRAN or C, which still have quite a following (and active questions/answers on this site!)

  0 Comments

Sign in to comment.


Answer by Jordan McBain on 14 May 2019

MATLAB is not a programming language for software engineers. It is a tool for numerical analysis; its use cases in my mind are limited to that. From an embedded software perspective, I would only use it to develop controls and diagnostic algorithms and would do all the rest of the work in C.
My objection to it relate to its the variability of its interfaces. Software engineering depends on being able to develop rigid interfaces that encapsulate how software systems change within those interfaces - as a first step towards safety critical software systems. MATLAB's interfaces change depending on what's going on inside of it. You never know whether an output will be a cell array containing multiple elements or just a single instantiation of one of those elements. MATLAB's documentation poorly exposes this variability. Worst case, this results in guess and check coding.
Admittedly, this flexibility allows for easy code development but such flexibility is easily misused.
Market demand may push you to become familliar with it as others have suggested. But I don't believe it can be called a programming language for software engineers.

  1 Comment

The only case I can think of at the moment for cell vs not is the return from uigetfile when multiselect is on which depends on the number of files the user selects.
The exact data type stored for a String property of uicontrol style edit can be confusing but it is consistent... Even if it would perhaps be easier if the consistency were slightly different.

Sign in to comment.