Table Find/Replace based on condition (greater than)

Morning, In a table, how can I find values greater than 1 and replace them with NaN?
I know about the ismissing family but it does not allow (I think) for a condition (greater than), only for specific number/text.
T = table([0.1;0.2],[7;0.5],'VariableNames',{'varx1','varx2'})
The entry "7" should be NaN

 採用された回答

Image Analyst
Image Analyst 2019 年 11 月 23 日

1 投票

Try this:
T = table([0.1;0.2],[7;0.5],'VariableNames',{'varx1','varx2'})
rowsToChange = T.varx1 > 1
if ~isempty(rowsToChange)
T.varx1(rowsToChange) = nan
end
rowsToChange = T.varx2 > 1
if ~isempty(rowsToChange)
T.varx2(rowsToChange) = nan
end

3 件のコメント

Dave
Dave 2019 年 11 月 23 日
Thanks, I take that there is no vectorized way to deal w conditionals for tables?
Image Analyst
Image Analyst 2019 年 11 月 23 日
編集済み: Image Analyst 2021 年 7 月 8 日
What are "w conditionals"?
It is vectorized by column.
The reason I did it by columns is that some columns (not in this case though) might not be numeric, in general. So you can't just convert the whole table to a numerical array, then do the whole matrix vectorized at once, then convert back to a table, unless you know what column numbers are numeric.
Giuseppe Degan Di Dieco
Giuseppe Degan Di Dieco 2021 年 7 月 7 日
Dear Image Analyst,
thanks for your tip, easy and straight.
Best.

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

ヘルプ センター および File ExchangeMatrices and Arrays についてさらに検索

質問済み:

2019 年 11 月 23 日

編集済み:

2021 年 7 月 8 日

Community Treasure Hunt

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

Start Hunting!

Translated by