Creating subset of table

31 views (last 30 days)
Metin Akyol
Metin Akyol on 9 Feb 2022
Commented: Stephen23 on 10 Feb 2022
When I am trying to create a subset of my table like so:
table_1(table_1.col_1>=0,:)
I am getting this error:
Operator '>=' is not supported for operands of type 'cell'
col_1 contains numbers, but they might not be recognized as numerical var type. Is there an elegant solution to this.
I have been trying strcmp instead, but that does not work on numerical comparisons.
I also tried to convert the column to an array using cell2mat but then I ned up getting an error saying:
Row index exceeds table dimesions.
  1 Comment
Stephen23
Stephen23 on 10 Feb 2022
"col_1 contains numbers, but they might not be recognized as numerical var type. Is there an elegant solution to this."
The first thing to try is STR2DOUBLE.
If that does not work then upload your data in a .mat file by clicking the paperclip button.

Sign in to comment.

Answers (1)

Scott MacKenzie
Scott MacKenzie on 9 Feb 2022
Edited: Scott MacKenzie on 9 Feb 2022
Since column 1 contains numbers in cells, something like this is needed:
T = array2table([{1, -2, 3}' {'a' 'b' 'c'}']) % test data
T = 3×2 table
Var1 Var2 ______ _____ {[ 1]} {'a'} {[-2]} {'b'} {[ 3]} {'c'}
T.Var1 = cell2mat(T{:,1})
T = 3×2 table
Var1 Var2 ____ _____ 1 {'a'} -2 {'b'} 3 {'c'}
T(T.Var1 >= 0,:)
ans = 2×2 table
Var1 Var2 ____ _____ 1 {'a'} 3 {'c'}
  5 Comments
Scott MacKenzie
Scott MacKenzie on 10 Feb 2022
Moving forward, it would be best if you post your data and the code that generates the error. Of course, you can also just post a subset of your data along with code demonstrating the error.

Sign in to comment.

Categories

Find more on Data Type Conversion in Help Center and File Exchange

Products


Release

R2021a

Community Treasure Hunt

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

Start Hunting!

Translated by