arrayfun with non uniform output
This commit is contained in:
parent
ce66178d75
commit
2a76bf1dca
14
cell_array.m
14
cell_array.m
|
|
@ -29,3 +29,17 @@ assert(isequal(cs, {4 2}));
|
|||
|
||||
% convert cell array to standard array
|
||||
assert(isequal(cell2mat(cs), [4 2]));
|
||||
|
||||
% arrayfun can output a non uniform cell array
|
||||
struct_array(1).data = [1 2];
|
||||
struct_array(2).data = [1 2 3];
|
||||
|
||||
try
|
||||
arrayfun(@(x) x.data, struct_array)
|
||||
catch e
|
||||
assert(isequal(e.identifier, 'MATLAB:arrayfun:NotAScalarOutput'));
|
||||
end
|
||||
|
||||
assert(isequal( ...
|
||||
arrayfun(@(x) x.data, struct_array, 'UniformOutput', false), ...
|
||||
{[1 2], [1 2 3]}));
|
||||
|
|
@ -12,9 +12,9 @@ patient(2).test = [68, 70, 68; 118, 118, 119; 172, 170, 169];
|
|||
|
||||
% if the index is not specified, patient.field returns
|
||||
% the fields of all its elements as multiple return values
|
||||
[name1, name2] = patient.name;
|
||||
assert(isequal(name1, 'John Doe'));
|
||||
assert(isequal(name2, 'Ann Lane'));
|
||||
[patient1, patient2] = patient.name;
|
||||
assert(isequal(patient1, 'John Doe'));
|
||||
assert(isequal(patient1, 'John Doe'));
|
||||
|
||||
% creates a new records 'age'; this will be created in all the other
|
||||
% entries; fields not specified here are set to []
|
||||
|
|
|
|||
Loading…
Reference in New Issue