假設我有數據a = 1x112;我的範圍值是b = [5 30; 35 54; 56 70; 78 99]。如何爲該範圍創建零個值。如何爲距離值創建零個數據matlab
我想要的結果是從1:4 = 0,5:30 = 1,31:34 = 0,35:54 = 1,55 = 0,56:70 = 1, 71: 77 = 0,78:99 = 1.
任何人都請幫助我。謝謝。
假設我有數據a = 1x112;我的範圍值是b = [5 30; 35 54; 56 70; 78 99]。如何爲該範圍創建零個值。如何爲距離值創建零個數據matlab
我想要的結果是從1:4 = 0,5:30 = 1,31:34 = 0,35:54 = 1,55 = 0,56:70 = 1, 71: 77 = 0,78:99 = 1.
任何人都請幫助我。謝謝。
嘗試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);
確定得到它。但結果是隻讀開始到結束值。意味着如果我使用上面的例子,我得到結果5:99 = 1其他是0 – danjoro 2014-10-18 03:03:22
顯示和示例'a'與你的'b'一起運行命令。它適用於你描述的方式。而'a'是一個行向量。 – chappjc 2014-10-18 03:14:17
ok.get it。 Tq非常 – danjoro 2014-10-18 03:39:52