MATLAB Programming/Arrays/Cell Arrays

(Redirected from MATLAB Programming/Cell Arrays)

Cell Array Introduction

Cell Arrays can contain differing information in every element. These types of arrays are useful when interacting with spreadsheet software.

Creating Cell Arrays

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

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

GUI Tables

Cell arrays are used when displaying a table to a figure.

uitable('Data',{'hello',1;2,'there'})

Converting to and from cell arrays

Converting From a Numeric Array into a Cell Array

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

Use cell2mat to convert from a cell into a numeric array.

>> numeric_array = cell2mat(numeric_cell_array);