Right hand side of an assignment into a table must be another table or a cell array.

67 views (last 30 days)
bias = table('Size',[1,11], 'VariableTypes', {'datetime', 'string', 'double', 'double', 'double', 'double', 'double', 'double', 'double', 'double', 'cell'}, 'VariableNames', ["time", "config", "ypos", "FA", "FN", "thrust", "CTA", "CTC", "VAB", "VBC", "pressure"]);
bias(1,4:10) = [1 2 3 4 5 6 7]; % throws error
bias(1,4) = 5; % Also throws error
both ways of assigning data into my table result in the error "Error using () Right hand side of an assignment into a table must be another table or a cell array."
The data type for these field is all double, why can I not assign a value with row/column indexing in this way? particularly the second one?
I can do
bias.FA = 1;
bias.FN = 2;
% etc...
but is there a way to fill these columns in one line? particularly.. to fill adjacent columns in a table using an array?
  1 Comment
Stephen23
Stephen23 on 27 Oct 2023
"The data type for these field is all double, why can I not assign a value with row/column indexing in this way?"
Because parentheses refers to the table array itself.
If you want to refer to the table content then use curly braces:

Sign in to comment.

Accepted Answer

Voss
Voss on 27 Oct 2023
bias{1,4:10} = [1,2,3,4,5,6,7];
bias{1,4} = 5;
  2 Comments
cdlapoin
cdlapoin on 27 Oct 2023
Thank you, the error message had me convinced that the problem was on the right hand side of the assignment, so I had tried things like:
bias(1,4:10) = {1,2,3,4,5,6,7}
bias(1,4:10) = {[1,2,3,4,5,6,7]}
but I never tried curly brackets on the left side. The fact that
bias(1,4)
returns a Table datatype should have been a clue, but I still couldn't make the connection.

Sign in to comment.

More Answers (2)

KSSV
KSSV on 27 Oct 2023
Edited: KSSV on 27 Oct 2023
bias = table('Size',[1,11], 'VariableTypes', {'datetime', 'string', 'double', 'double', 'double', 'double', 'double', 'double', 'double', 'double', 'cell'}, 'VariableNames', ["time", "config", "ypos", "FA", "FN", "thrust", "CTA", "CTC", "VAB", "VBC", "pressure"]);
val = 1:7 ;
for i = 1:7
bias.(i+3) = val(i) ;
end
OR
time = datetime ;
config = {'Missing'} ;
ypos = 0 ;
FA = 1 ;
FN = 2 ;
thrust = 3 ;
CTA = 4 ;
CTC = 5 ;
VAB = 6 ;
VBC = 7 ;
pressure = {100} ;
bias = table(time,config,ypos,FA,FN,thrust,CTA,CTC,VAB,VBC,pressure)

Walter Roberson
Walter Roberson on 27 Oct 2023
bias = table('Size',[1,11], 'VariableTypes', {'datetime', 'string', 'double', 'double', 'double', 'double', 'double', 'double', 'double', 'double', 'cell'}, 'VariableNames', ["time", "config", "ypos", "FA", "FN", "thrust", "CTA", "CTC", "VAB", "VBC", "pressure"]);
%version 1
bias(1,4:10) = num2cell([1 2 3 4 5 6 7]);
bias(1,4) = {5};
%version 2
bias{1,4:10} = [1 2 3 4 5 6 7];
bias{1,4} = 5;
bias
bias = 1×11 table
time config ypos FA FN thrust CTA CTC VAB VBC pressure ____ _________ ____ __ __ ______ ___ ___ ___ ___ ____________ NaT <missing> 0 5 2 3 4 5 6 7 {0×0 double}

Tags

Products


Release

R2023b

Community Treasure Hunt

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

Start Hunting!