increase dimensions of struct in matlab

In MATLAB, one can increase the dimensions of a struct by adding new fields dynamically. One way to do this is by using the setfield function, which can add or modify fields in a struct. Here's an example:

main.m
% create a struct with one field
myStruct.field1 = 42;

% add a second field to the struct
myStruct = setfield(myStruct, 'field2', 'hello');

% add a third field to the struct
myStruct = setfield(myStruct, 'field3', [1 2 3 4]);
228 chars
9 lines

In this example, we first create a struct with one field called field1. Then we add a second field called field2 by using setfield. Finally, we add a third field called field3 in the same way.

Note that setfield returns a new struct containing the added or modified fields. Therefore, we need to assign the result of setfield back to the original variable name (myStruct in this case) to update the struct.

Another way to add fields to a struct is by simply assigning a value to a non-existent field. For example:

main.m
% create a struct with one field
myStruct.field1 = 42;

% add a second field to the struct
myStruct.field2 = 'hello';

% add a third field to the struct
myStruct.field3 = [1 2 3 4];
182 chars
9 lines

This method is slightly simpler than using setfield, but it's less flexible as it requires us to know the names of the fields we want to add. However, it can be useful in situations where we need to add a small number of fields and don't want to call a function for each one.

gistlibby LogSnag