MATLAB Programming/Arrays/Cell Arrays
Cell Array Introduction Edit
Cell Arrays can contain differing information in every element. These types of arrays are useful when interacting with spreadsheet software.
Creating Cell Arrays Edit
Cell arrays follow the same conventions as regular arrays except instead of square brackets use curly brackets.
array = [1, 2, 3; 4, 5, 6]; cell_array = {1, 2, 3; 4, 5, 6};
Cell arrays have fewer limitations than regular arrays. The regular array can hold strings; however, the string in each element must be the same length. If one element in a regular array is a string then all elements must be a string. Cell arrays have neither of these limitations.
cell_array = {1, 2, 'a', 'abc'; rand(3, 2), magic(3), eye(3), 'junk'} cell_array = [ 1] [ 2] 'a' 'abc' [3x2 double] [3x3 double] [3x3 double] 'junk'
With fewer limitations for the content of a cell array comes complications. While cell arrays are a powerful tool, these arrays work differently because each element can be almost anything.
Dynamic Resizing Edit
Cell arrays can be dynamically resized, which is a key feature in more advanced data structures. For example, a queue data structure using the commands:
cell_array{end+1}='a'; cell_array{end+1}='b';
An element can be popped from the front of the queue using the commands:
cell_array(1)=[]; % remove first element - resize cell_array(1)=[]; % remove first element - resize
Uses Edit
GUI Tables Edit
Cell arrays are used when displaying a table to a figure.
uitable('Data',{'hello',1;2,'there'})
Converting to and from cell arrays Edit
Converting From a Numeric Array into a Cell Array Edit
Use num2cell to convert from a numeric into a cell array.
>> cell_array = num2cell(numeric_array);
Converting From a Cell Array into a Numeric Array Edit
Use cell2mat to convert from a cell into a numeric array.
>> numeric_array = cell2mat(numeric_cell_array);