[英]How to create zero one data for range value 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。
有人請幫助我。 謝謝。
嘗試bsxfun
, bsxfun
元素and
然后跟隨any
:
any(bsxfun(@le,a,b(:,2)) & bsxfun(@ge,a,b(:,1)),1)
如果您有大數據,可能會占用大量內存。
另一種可能性:利用b
必然具有的順序,
result = mod(sum(bsxfun(@lt, a, [b(:,1); b(:,2)+1])), 2);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.