Error when using logical indexing to get a value from a table
Show older comments
I have the following snippet of code, which I created based on online tutorial:
theta = pi/4
%Create the table
Angles = {pi/2;pi/3;pi/4;pi/6;pi/12};
wValues = {0;0.8846;1.318;1.973;3.782};
%Create a table of w values at specific angles
T = table(Angles,wValues);
%Read the value of w from the table
logical_index = T.Angles == theta;
w = T.wValues(logical_index);
I keep getting the following error on the line:
logical_index = T.Angles == theta;
Operator '==' is not supported for operands of type 'cell'.
I don't understand why this is happening since I am following a code example.
Accepted Answer
More Answers (1)
Examine the table that gets created:
%Create the table
Angles = {pi/2;pi/3;pi/4;pi/6;pi/12};
wValues = {0;0.8846;1.318;1.973;3.782};
%Create a table of w values at specific angles
T = table(Angles,wValues)
Notice that it is a 5 x 2 table, with the entries being cell arrays. Those cell array entries cannot be compared to numeric values.
There is a connection between cell arrays and tables, but it has to do with appending data to tables.
T1 = table((1:5).', (101:105).')
data_to_add = [Angles,wValues]
T1(end+1:end+5,:) = data_to_add
So, an existing table can be extended by assigning a cell array.
Or you can
T2 = cell2table(data_to_add)
1 Comment
Robert Demyanovich
on 14 Feb 2026 at 20:00
Categories
Find more on Data Type Identification in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!