MATLAB Answers

Operands on table, comparison with numbers

3 views (last 30 days)
Mihai Milea
Mihai Milea on 26 Nov 2020
Commented: Mihai Milea on 27 Nov 2020
Hi .I have a table after reading a csv file with readtable .I attached a sample file .Say I get a table A after reading.
say I fix one of the row indices " ind" .If I try say find(A(ind,:)>0.1) I get the error : "Operation '>' not supported for operands of type table " .In general how do I just go back to some classic matrix from a table ignoring these Variable names?
I tried table2array but with no luck .Many thanks

  0 Comments

Sign in to comment.

Accepted Answer

Steven Lord
Steven Lord on 26 Nov 2020
say I fix one of the row indices " ind" .If I try say find(A(ind,:)>0.1) I get the error : "Operation '>' not supported for operands of type table " .In general how do I just go back to some classic matrix from a table ignoring these Variable names?
There's no guarantee you can "slice" the table across rows -- the variables may contain data of different data types.
load patients
T = table(LastName, Gender, Age, Smoker);
head(T)
ans = 8x4 table
LastName Gender Age Smoker ____________ __________ ___ ______ {'Smith' } {'Male' } 38 true {'Johnson' } {'Male' } 43 false {'Williams'} {'Female'} 38 false {'Jones' } {'Female'} 40 false {'Brown' } {'Female'} 49 false {'Davis' } {'Female'} 46 false {'Miller' } {'Female'} 33 true {'Wilson' } {'Male' } 40 false
But if you can, you can use curly braces to extract the data into a numeric array.
A = magic(4)
A = 4×4
16 2 3 13 5 11 10 8 9 7 6 12 4 14 15 1
T2 = array2table(A)
T2 = 4x4 table
A1 A2 A3 A4 __ __ __ __ 16 2 3 13 5 11 10 8 9 7 6 12 4 14 15 1
T2{3, :} % The same as A(3, :)
ans = 1×4
9 7 6 12

  1 Comment

Mihai Milea
Mihai Milea on 27 Nov 2020
Did not work this way but your answer works fine with readcell instead od readtable -:))

Sign in to comment.

More Answers (1)

KSSV
KSSV on 26 Nov 2020
You have to access the columns of Table T using T.(1), T.(2) etc,
Read about accessing the columns from tatble. If you have names to the columns, you can use
T.col1, T.col2 etc to access the respective columns.

  3 Comments

Mihai Milea
Mihai Milea on 26 Nov 2020
It is a different issue .If I select a row number I need to find all the columns with some property.For example in this case with values greater than some number .In matrix terms this is very straightfoward
KSSV
KSSV on 26 Nov 2020
Use xlsread and get all the data into a matrix.
Mihai Milea
Mihai Milea on 26 Nov 2020
Does not read this csv file .readcell works but instead of table I get some cell structure which gives the same error

Sign in to comment.

Products


Release

R2020b

Community Treasure Hunt

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

Start Hunting!