As a Software Engineer, Why should I use MATLAB?
조회 수: 19 (최근 30일)
이전 댓글 표시
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
Jan
2012년 6월 27일
@Walter: Or a TMW product manager ran out of arguments for the new advertisement strategy.
채택된 답변
Mani
2012년 6월 27일
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
Jan
2012년 6월 27일
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.
추가 답변 (6개)
Geoff
2012년 6월 27일
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
Paul Metcalf
2012년 6월 27일
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
Ryan
2012년 6월 27일
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.
Jan
2012년 6월 27일
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).
Jason Ross
2012년 6월 27일
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
Jordan McBain
2019년 5월 14일
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
Walter Roberson
2019년 5월 14일
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.
참고 항목
카테고리
Help Center 및 File Exchange에서 Scope Variables and Generate Names에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!