Cell arrays in MATLAB are a versatile data type that can hold different types of data in each cell. Unlike regular arrays, which can only hold elements of the same data type, cell arrays can store combinations of strings, numbers, arrays, and even other cell arrays. This makes them particularly useful for handling heterogeneous data.
Here’s a quick guide and example to help you understand cell arrays in MATLAB:
Creating a Cell Array: You can create a cell array using the cell function, curly braces {}, or by combining data directly.
% Create an empty cell array
C = cell(3, 2); % 3x2 cell array
Storing Data in a Cell Array: Data is stored in a cell array using curly braces {}. Each element can hold different types of data.
% Store different types of data
C{1, 1} = 'Hello'; % String
C{1, 2} = 42; % Number
C{2, 1} = magic(3); % 3x3 matrix
C{2, 2} = {'Nested', 7}; % Nested cell array
C{3, 1} = [1, 2, 3]; % Numeric array
C{3, 2} = @sin; % Function handle
Accessing Data in a Cell Array: Data is accessed using curly braces {} for individual elements, or parentheses () if you need to access the cell array itself.
% Accessing data
disp(C{1, 1}); % Displays 'Hello'
disp(C{2, 1}); % Displays the 3x3 magic matrix
disp(C{2, 2}{1}); % Access 'Nested' from nested cell array
Modifying Data in a Cell Array: Data can be modified similarly by specifying the cell and assigning a new value.
% Modify data
C{1, 1} = 'Goodbye';
C{3, 2} = @cos;
Example: Here’s an example that combines various data types into a single cell array and then accesses and modifies the data.
% Create a cell array with different types of data
myCellArray = {'MATLAB', 3.14; rand(2, 2), {'Cell', 'Array'}};
% Display the cell array
disp('Original Cell Array:');
disp(myCellArray);
% Access and display specific elements
disp('First Element:');
disp(myCellArray{1, 1}); % Displays 'MATLAB'
disp('Second Element:');
disp(myCellArray{1, 2}); % Displays 3.14
% Modify elements
myCellArray{1, 1} = 'Octave';
myCellArray{2, 2} = {'Nested', 'Cells'};
% Display the modified cell array
disp('Modified Cell Array:');
disp(myCellArray);
This code snippet demonstrates the creation, modification, and access of a cell array containing various data types. Cell arrays are powerful tools in MATLAB for managing heterogeneous data, making them highly valuable in many applications.