给定一个数字,快速检查它在哪个区间?

2 matlab

假设我有四个区间:[0,82],[82,146],[146,180],[180,255].

给出一个数字,比方说110.我想快速检查哪个区间是110英寸,返回1或2或3或4.

我想知道MATLAB是否有现有的功能,而不是手动比较数字.

谢谢.

Div*_*kar 6

你可以使用这样的东西 -

intv = [
    0    82;
    82  146;
    146 180;
    180 255]

num = 110

index = find(num>=intv(:,1) & num<intv(:,2))
Run Code Online (Sandbox Code Playgroud)

如果interval数组是行向量:intv = [0 82 146 180 255],你可以使用 -

index = find(num >= intv(1:end-1) & num < intv(2:end))
Run Code Online (Sandbox Code Playgroud)

或使用histc-

index = find(histc(num,intv))
Run Code Online (Sandbox Code Playgroud)

正如@knedlsepp所建议的那样,对于多个输入数字num,您可以使用 -

[~,indices] = histc(num, intv)
Run Code Online (Sandbox Code Playgroud)