Hi,
I am trying to set up an array of values with lower and upper bounds. The lower bound (lb) is .1 and the upper bound (ub) is .25. I also have a table called Tab. I want to find all values in Tab(:,3) as long as they are within [lb and ub]. I am trying to use ismember because I am specifying for other columns using ismember. It would be nice if I could extract all rows from Tab(:,3) that fall between ub and lb using ismember. Any help?
Thanks

 Akzeptierte Antwort

Steven Lord
Steven Lord am 2 Jul. 2019

0 Stimmen

ismember isn't the right tool for this task. Use the greater-than (>) and less-than (<) operators.
rng(0, 'twister');
x = rand(10, 1);
mask = (x > 0.25) & (x < 0.75);
T = table(x, mask, 'VariableNames', {'data', 'inRange'})
xInRange = x(mask)

2 Kommentare

Syeda Amberin
Syeda Amberin am 2 Jul. 2019
Thanks. I have applied this method. But this means I will have to create a second table which I am avoiding. Your time is appreciated.
No. I built the table T just to show the results.
rng(0, 'twister');
x = rand(10, 1);
T = table(x);
mask = (T.x > 0.25) & (T.x < 0.75);
T(mask, :) % Sub-table
T{mask, 'x'} % Just the contents of the x variable from T

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Community Treasure Hunt

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

Start Hunting!

Translated by