簡體   English   中英

如何為范圍值matlab創建零一數據

[英]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。

有人請幫助我。 謝謝。

嘗試bsxfunbsxfun元素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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM