如何为范围值matlab创建零个数据

时间:2014-10-18 01:58:37

标签: matlab

假设我有数据a = 1x112;我的范围值是b = [5 30; 35 54; 56 70; 78 99]。如何为该范围创建零值。

我想,结果范围从1:4 = 0,5:30 = 1,31:34 = 0,35:54 = 1,55 = 0,56:70 = 1, 71:77 = 0,78:99 = 1.

任何人都请帮助我。谢谢。

2 个答案:

答案 0 :(得分:2)

尝试bsxfun,元素明智and后跟any

any(bsxfun(@le,a,b(:,2)) & bsxfun(@ge,a,b(:,1)),1)

如果您有大数据,可能会占用大量内存。

答案 1 :(得分:0)

另一种可能性:利用b必然具有的顺序,

result = mod(sum(bsxfun(@lt, a, [b(:,1); b(:,2)+1])), 2);