# Check if a number is in between two values

445 views (last 30 days)
William Ferguson on 29 Oct 2019
Answered: Josep Llobet on 16 Dec 2022
Say I have two column vectors:
a = [1,2,3,4,5,6]'
b = [10,11,12,13,14,15]'
Interval = [a b]
How would I check if a value like '8' is inbetween the defined interval?
Thank you
Rik on 29 Oct 2019
You mean like this?
tf= val>max(a) && val<min(b);
Should there be a check if a is indeed smaller than b?
William Ferguson on 29 Oct 2019
we can assume it will always be

Fabio Freschi on 29 Oct 2019
Edited: Fabio Freschi on 29 Oct 2019
a = [1,2,3,4,5,6]'
b = [10,11,12,13,14,15]'
Interval = [a b];
% number to check
x = 8;
% this finds the index of he rows(2) that have x in between
idx = find(x > Interval(:,1) & x < Interval(:,2));
% number of intervals with positive check
numIdx = sum(x > Interval(:,1) & x < Interval(:,2))
##### 3 CommentsShow 1 older commentHide 1 older comment
Fabio Freschi on 29 Oct 2019
Walter Roberson on 29 Oct 2019
nnz(x >= a & x <= b)

Josep Llobet on 16 Dec 2022
function [min_proxim, max_proxim, porta_num_between] = app_sel_between_two(val_list, val_check)
% Detrmina si un numero (val_check) és dins d'una llista de números.
% Variables
% input
% val_list : list of values % ex: [1, 567 23];
% val_check : value to check % ex: 89
%
% output
% max_proxim : valor minim
% min_proxim : valor maxim
% porta_num_between : (true/false) porta si h iha numero entremig.
% INICI FUNCIÓ
val_list = sort(val_list);
% Més proper inferiors
max_proxim = max(val_list(find(val_check >= val_list)));
% Més proper superiors
min_proxim = min(val_list(find(val_check <= val_list)));
% Si hi ha algun valor:
if ~isempty(max_proxim) && ~isempty(min_proxim)
porta_num_between = true;
else
porta_num_between = false;
end
% FINAL FUNCIÓ
end