plato/cell_array.m

31 lines
791 B
Matlab

clear
% cell arrays are like n-dimensional arrays, but have hetergeneous
% data-types inside
a = {'p'};
v = {1 'a'};
D = {1 2; 't' [1 2]};
% like vectors, scalars, and matrices, cell arrays are two-dimensional
% by default
assert(ndims(a) == 2);
assert(ndims(v) == 2);
assert(ndims(D) == 2);
% indexing a cell array follows the same rules, and returns another cell
% array (like indexing a matrix returns a matrix, remember that scalar
% are 1x1 matrices
assert(all(size(D(2, 2)) == [1 1]));
% to unbox the cell values, index with {} instead of ()
% this will return a matrix instead of a cell
assert(D{2,1} == 't');
assert(all(D{2, 2} == [1 2]));
% equality check:
cs = {1+3 2};
assert(isequal(cs, {4 2}));
% convert cell array to standard array
assert(isequal(cell2mat(cs), [4 2]));