0

I'm trying to create a timetable for a motor simulation. I would like to keep track of the units of each variable. Here is my code, a script in a file called CreateTT.m:

time.start = duration(0,0,0,0); %Start: 0m, 0s, 0ms
time.end = duration(0,1,0,0);   %end: 1m
time.step = duration(0,0,0,1);  %step: 1 ms

time.numsteps = (time.end - time.start) / time.step;

varNames = {'Angle','Angular Speed','Voltage','Current','Magnetic Field'};
varTypes = {'double','double','double','double','double'};
varUnits = {'degrees','deg/s','Volts','Amps','Tesla'};

data = timetable('Size', [time.numsteps, 5], 'VariableTypes', varTypes, 'TimeStep', time.step, 'VariableNames', varNames, 'VariableUnits', varUnits);

When I run it, I get the following error:

Error using timetable (line 335) Invalid parameter name: VariableUnits.

Error in CreateTT (line 11) data = timetable('Size', [time.numsteps, 5], 'VariableTypes', varTypes, 'TimeStep', time.step, 'VariableNames', varNames, 'VariableUnits', varUnits);

I am using R2021a, Update 7.

I checked the online documentation for making a timetable and 'VariableUnits' is definitely a valid parameter to use. When I omit that part, my code runs fine, and if I check data.Properties, it shows 'VariableUnits' as one of the properties (albeit blank, of course).

What am I doing wrong?

Trashman
  • 1,424
  • 18
  • 27

1 Answers1

1

Received an answer on another site, posting here if anyone sees a similar problem.

Apparently, "VariableUnits" is not a supported name for name/value pairs in the initialization of a timetable. In order to set the units, after creating the timetable, the property then has to be set directly as such:

data = timetable('Size', [time.numsteps, 5], 'VariableTypes', varTypes, 'TimeStep', time.step, 'VariableNames', varNames);
data.Properties.VariableUnits = varUnits;
Trashman
  • 1,424
  • 18
  • 27