From Wikipedia, the free encyclopedia
Jump to: navigation, search
          This article is of interest to the following WikiProjects:
WikiProject Computing / Software (Rated C-class, Mid-importance)
WikiProject icon This article is within the scope of WikiProject Computing, a collaborative effort to improve the coverage of computers, computing, and information technology on Wikipedia. If you would like to participate, please visit the project page, where you can join the discussion and see a list of open tasks.
C-Class article C  This article has been rated as C-Class on the project's quality scale.
 Mid  This article has been rated as Mid-importance on the project's importance scale.
Taskforce icon
This article is supported by WikiProject Software (marked as Mid-importance).
WikiProject C/C++ (Rated C-class, Low-importance)
WikiProject icon This article is within the scope of WikiProject C/C++, a collaborative effort to improve the coverage of C/C++ on Wikipedia. If you would like to participate, please visit the project page, where you can join the discussion and see a list of open tasks.
C-Class article C  This article has been rated as C-Class on the quality scale.
 Low  This article has been rated as Low-importance on the importance scale.
Taskforce icon
This article falls within the scope of C.


My use case is that I do not know MATLAB but want to get an impression as input to the selction of a numerical tool for a project. I like the beginning of the syntax section (which is also an example section) as it is self-contained in explaining the examples. This is done consistently until we get to the magic square M example, where we encounter the line

 (J,I) = meshgrid(1:n)

but the meaning of "meshgrid" is not explained. Thus, I do not really understand that example. Similarly in the 2D sinc example, where we encounter "meshgrid" again, and also other new notation such as ".^" and "eps".

I miss some more advanced examples - like with built-in special functions (if it has some?) how can one handle I/O. Can I interface with external code and examples of how to do that. How about reporting? All in all I miss some more information about the possibilities rather than the limitations. -- Slaunger (talk) 12:34, 4 March 2008 (UTC)

A quick search for matlab meshgrid or matlab eps would find you what you need. Add the info the article if you think like. Dicklyon (talk) 15:41, 4 March 2008 (UTC)
Thank you for responding. I did the same search and found my answers. I do not mind contributing, but I prefer to do it on topics which I am knowledgable about, and secondarily I have reservations at contributing here, as my written English is unworthy en.wikipedia. It was just a suggestion for improvement. -- Slaunger (talk) 20:55, 4 March 2008 (UTC)

C-Mex files[edit]

Someone should write something of C-MEX files in MATLAB. It may be helpful to readers.Vice regent 16:47, 15 May 2008 (UTC)

Here is a simple "hello world" example MEX-file:
#include "mex.h"
void mexFunction(int nlhs, mxArray *plhs[], int nrhs, const mxArray *prhs[])
    mexPrintf("Hello World!\n");
Place it a file example_mex.c, and compile it as: mex example_mex.c (make sure to run mex -setup at least once before). Finally run the new MEX-file in MATLAB as any usual function:
>> example_mex
Hello World

Amro (talk) 20:58, 14 August 2013 (UTC)

History of default data type[edit]

Today the default data type in Matlab is the 64-bit double-precision floating point (complex numbers need two times 64 bit). I have been unable to find information about the historical development of the default data type. What was it in the early days of MATLAB? Matlab appeared first on computers on which the standard allocation unit was the byte (8 bit) and I guess 64 bit precision was not possible back then. Does anyone remember or even better know a source for this information? User:Nillerdk (talk) 10:15, 16 November 2008 (UTC)

64-bit "double-precision" floats have been common on computers for a long time, and as far as I can recall, that's what Matlab always had; I started using it around 1990. The programs it was based on were much older, but I think still used the same numeric format, more or less (but before IEEE standard floating point, not all 64-bit floats were alike). Dicklyon (talk) 06:34, 28 November 2008 (UTC)
You can find a bit of history in a blog post by Steve Eddins (a developer at MathWorks): Data Types. Amro (talk) 20:44, 14 August 2013 (UTC)

Programming Language or Scripting Language?[edit]

Since matlab code can't be run independent of the MATLAB programming, I am 99% sure that it is a scripting language, and NOT a programming language. Discuss. —Preceding unsigned comment added by (talk) 04:11, 2 January 2009 (UTC)

Well, there is a compiler that allows one to run matlab code outside the matlab environment. -- Jitse Niesen (talk) 15:59, 2 January 2009 (UTC)

Alternatives Section Redux[edit]

After reading the discussions below, to understand the previous arguments, I have added an "Alternatives" section to the article attempting to respect the issues brought up. I, very often, used Wikipedia as a way to look up information on applications and, in many cases, to look for alternatives for well known software packages (due to price, technical issues, etc.). I think that any article on a product should, at least, mention any direct alternatives that exist and point to where the reader can find more information on them. I believe this to be especially true with programs that are directly compatible (or, at least, intended to be). This is why I, specifically, chose to highlight Octave and FreeMat but also included links to the lists of alternatives as well as the comparison page. I find the article, as it was written previously, to be an aberration when compared to the style standards implemented in most other Wikipedia articles I've read. It is, almost universally, common to have, at the very least, a “See Also” section at the end of an article to point readers to other relevant topics (of which, competing software would be one). I have to question whether a non-npov may have motivated past efforts to ensure that no reference to related topics (organizations Matlab competes with for marketshare) was mentioned anywhere in the article. Even the list of numerical analysis software (mentioned below as a justification for deleting information referencing Matlab competitors) was not, as far as I could see, linked to by the article in any way. This seems, to me, to be the opposite of what Wikipedia is intended to accomplish, which is to inform the reader about a topic in as efficient but thorough manner as possible with as little bias as possible. As my contribution consists of only two sentences at the very end of the page, I would hope that no one tries to claim it adds too much bulk to the article. I have also tried to make it clear that the effectiveness of Octave and FreeMat's compatibility with Matlab is, at least, questionable and have tried not to imply that they can replace 100% of MatLabs features while leaving my wording general enough for any future improvements in their compatibility. (talk) 02:20, 9 March 2009 (UTC)

Unclear discussion of matrices[edit]

This is given as an example in the matrices section but it is unclear to someone without previous knowledge (such as myself) how that command brings that answer.

A(2:4,3:4) ans =

11 8
7 12
14 1

could someone please add an explanation into the article?

THEMlCK (talk) 02:18, 7 April 2009 (UTC)

I added a sentence that should help, right before that example. Dicklyon (talk) 04:09, 7 April 2009 (UTC)

Monkey Analytics[edit]

I think this link can be removed. --SiggyF (talk) 09:53, 6 December 2009 (UTC)

NPOV tag[edit]

It is pretty clear from the previous discussion dating back for at least 3 years that there will never really be a "resolution" to the NPOV dispute. There are people dug in on both sides. Does that mean that the tag stays on forever? (talk) 18:17, 5 June 2010 (UTC)

I've removed the tag and replaced it with {{criticism-section}}. Dispute tags are not supposed to be badges of shame to be worn indefinitely by articles. This article needs significant work, but I believe it's simply a matter of requiring a competent rewrite to comply with our guidelines on article content and tone rather than something which needs thorough discussion on talk. Chris Cunningham (not at work) - talk 12:47, 7 June 2010 (UTC)

Objects discussion[edit]

MATLAB supports classes, however the syntax and calling conventions are significantly different than in other languages, because MATLAB does not have reference data types. For example, a call to a method object.method(); cannot normally alter any variables of object variable. To create an impression that the method alters the state of variable, MATLAB toolboxes use evalin() command, which has its own restrictions.

This isn't strictly true. In the MATLAB object system, there are two types of objects. Objects with value semantics have the property that this example is pointing to in which a LHS argument must be specified to contain an object with modified state after method is invoked.
new_object = object.method(); 
The second type of objects in MATLAB have handle semantics. These objects can have their state modified by the invokation of methods without a LHS argument

Extraneous info in introduction[edit]

There seems to be some extraneous info in the introduction, regarding the rising importance of MATLAB for continuing education students. This strikes me as possibly worthy of a sub-section (possibly), but not worthy as part of the introduction. No references are given and the concluding sentence, "These stand-alone courses are of special significance in helping older people with backgrounds in engineering, science, and economics remain competitive." seems highly opinionated. The rest of the introduction is fine but I am deleting this portion for now and leaving this comment for open discussion/disagreement. —Preceding unsigned comment added by Sealbock (talkcontribs) 00:09, 4 December 2010 (UTC)

Why there is no toolbox price list ?[edit]

Why there is no toolbox price list ? There is not even a single word in the article about how much does it cost. One could think MATLAB is so humanitarian and altruistic.... — Preceding unsigned comment added by (talk) 13:24, 25 August 2011 (UTC)

Ever seen a price list in an Encyclopedia?Billlion (talk) 15:58, 25 August 2011 (UTC)
Comparison of computer algebra systems for example. KudzuVine (talk) 23:40, 28 September 2012 (UTC)

What's secondary programming?[edit]

If it's a popular expression for some people, it might be worth a separate article and a link. Otherwise, it should be replaced by something clearer, explained, or the section should be removed. Engelec (talk) 17:51, 1 October 2011 (UTC)

No reply six months later, section removed. Engelec (talk) 14:51, 23 April 2012 (UTC)

Section 6 (License)[edit]

Section 6 has no citations - is there evidence of this? — Preceding unsigned comment added by (talk) 13:57, 20 January 2012 (UTC)

Colons for submatrices[edit]

  1. Please describe the colon notation for pulling all elements in a column A(:,ColIndex) or row A(RowIndex,:). Was this an innovation of Matlab (or APL?)?
  2. Please describe the government-funded development of MATLAB as an interface to BLAS and LAPack, I believe by Cleve Moler at a State University in New Mexico. The primitive MATLAB used to be freeware in the early 1990s.
  3. (Regarding "Easter eggs": In the 1990s, the interpreter responded to "fuck" with "Your place or mine?". Has this been documented?)
  4. The article should specify whether MATLAB stores vectors and arrays by row or columsn.

Thanks,  Kiefer.Wolfowitz 17:27, 20 March 2012 (UTC)

Wrt. 2, see [1] where the fortran source code can be found; it can be compiled easily with gfortran (gfortran -o matlab source/*.f). In the readme file, Cleve Moler writes: I distributed a few hundred copies of the source code, usually charging a $100-or-so service charge, and including a letter requesting that it not be redistributed. I never used the term "public domain". But maybe it was made freeware later. Engelec (talk) 15:09, 23 April 2012 (UTC)


It is not clear if the sentence "For example, typing in "spy" will get a generate of the spies from spy vs spy." is meant to make grammatical sense or if it is computer jargon. The word "generate" is normally a verbal and not a noun. KudzuVine (talk) 23:37, 28 September 2012 (UTC) Side note: in vsn 2011a, the image is a wolf's head, not a MAD magazine image. — Preceding unsigned comment added by (talk) 12:31, 18 December 2012 (UTC) The grammatical error has been fixed. — Preceding unsigned comment added by (talk) 15:09, 25 January 2013 (UTC)

Both information lacking and superfluous examples[edit]

Parts of this article contain information that is i.m.o. not relevant for an encyclopedia. For example,

  • A square identity matrix of size n can be generated using the function eye, and matrices of any size with zeros or ones can be generated with the functions zeros and ones, respectively. Does this tell us anything about MATLAB?
  • What about 4 examples, even involving arrays in the 'Variables' section? I don't even get to know whether MATLAB is case-sensitive in the entire 'Syntax' section.
  • The 'Array' section is way too long. Readers are smart enough to know what happens when the increment operator defaults to 1. The examples hardly clarify anything, and their descriptions are usually saying the same thing multiple times. Logical indexing, however a powerful and characteristic tool in MATLAB, is not included. Neither are Cell Arrays.
  • Functions, one of the fundamental structures within MATLAB, do not have an example, and just throw around with vague 'anonymous functions' terminology.
  • Do we really need to know how a magic square is created within MATLAB? Sure, let's use a neat little math puzzle as clarification.
  • The extremely long examples on how to make a 3d-graph, which is just copy-pasted from the MATLAB documentation. Those plot are not only irrelevant (seriously, wireframe AND surface? Why not go through all 10+ 3d plotting functions in MATLAB?), but also in the wrong section; plots are not GUI; they are output, not interface.

Opinions? (talk) 19:00, 13 September 2013 (UTC)