transform table variable into struct variable.

34 views (last 30 days)
Hello,
I have a table that is used as a disturbance in a model predictive controller, and I need to input this table as a measured disturbance. However, the measured disturbance, like any variables in the model predictive controller, is formatted as a struct. I attempted to convert the struct to a cell array using the script, but I received an error stating that the struct cannot be changed. Therefore, I need to convert the variable table into a struct. Do you have any suggestions on how to do this?

Accepted Answer

Walter Roberson
Walter Roberson on 26 Dec 2024 at 22:01
Perhaps use table2struct ?
Note that your posted code creates a cell array, U and uses () indexing to try to set U(1) and so on. In order for that to work, the right hand side of the assignment needs to be a cell array scalar, or something convertable to a cell array scalar. nlobj.MV(1) does not appear to be convertable to a cell. Your code would make more sense if you did, for example,
U{1} = nlobj.MV(1);
On the other hand, I note that all of the entries appear to be numeric scalars, so I wonder whether you should have instead initialized
U = zeros(1,5);
  1 Comment
Walter Roberson
Walter Roberson on 27 Dec 2024 at 5:04
nlobj_struct = cell2struct(table2cell(nlobj), nlobj.Properties.VariableNames);

Sign in to comment.

More Answers (0)

Products


Release

R2024a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!