A bit of a newbie question: whats the difference between square brackets []
and curly brackets {}
in Matlab? When is it appropriate to use either?
Update: its actually in the Matlab docs under "Special Characters".
Cell Array Syntax Cell arrays in Matlab use the curly bracket {} notation instead of the normal parentheses (). While you may think that using () works, it in fact returns the "cell" of the array, not the "value" of the cell, which 99% of the time is not what you are looking for.
Description: Square brackets enable array construction and concatenation, creation of empty matrices, deletion of array elements, and capturing values returned by a function.
Special Characters [ ] ( ) {} = ' . ... , ; % ! Brackets are used to form vectors and matrices. [6.9 9.64 sqrt(-1)] is a vector with three elements separated by blanks.
Usually we use square brackets - [ ] - for special purposes such as in technical manuals. Round brackets - ( ) - are used in a similar way to commas when we want to add further explanation, an afterthought, or comment that is to do with our main line of thought but distinct from it.
A square bracket creates a vector or matrix, whereas curly brackets creates a cell array.
When working with numbers, I'd say that 99% of the time, you will use square brackets. Cell arrays allow you to store different types of data at each location, e.g. a 10x5 matrix at (1,1), a string array at (1,2), ...
x = [1 2 3]; #% matrix with values 1, 2, 3 y = {1, 'a', x}; #% cell array storing a number, a character, and 1x3 matrix
Here is the MATLAB documentation on cell arrays: http://www.mathworks.com/help/matlab/cell-arrays.html
This paper answered my question above in a very elegant manner. The paper explains Matlab arrays to someone who is more familiar with non-array based languages such as C++, C#, Java, and Python:
MATLAB array manipulation tips and tricks - Peter J. Acklam
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With