[英]Matlab find minimum value by ignoring zero and certain condition
所以我有這個數據
yi =
-1
1
1
-2
4
data=
1.0000 0 1.0000 0.2000 1.0000 1.0000
0 0 0 0.5000 1.0000 1.0000
1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
0 0 0 0 1.0000 0
1.0000 0 0 0 1.0000 0
我說數據變得像這樣
sdata =
0 0.2000 1.0000 1.0000 1.0000 1.0000
0 0 0 0.5000 1.0000 1.0000
1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
0 0 0 0 0 1.0000
0 0 0 0 1.0000 1.0000
這個規則
如果yi <0 theris 2條件:
一種。 如果sdata成員只有0和1,則輸出=最小行sdata = 0
b。 如果sdata成員包括0到1之間的數字,則輸出=最小sdata,但零除外
所以我想找到這樣的輸出
output=
0.2000
1.0000
1.0000
1.0000
0
1.0000
我仍然堅持到這一點
for i=1:5
if yi(i)>=0
output(i)=max(sdata(i,:));
else
output(i)=min(sdata(i,:));
end;
end;
outputnya=output'
嘗試這個:
else
minVal = min(sdata(i,sdata(i,:)>0))
if minVal == 1
output(i)=min(sdata(i,:));
else
output(i) = minVal;
end;
end;
說明: sdata(i,:)>0
返回表0和1, sdata(i,sdata(i,:)>0)
返回滿足指定條件的元素。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.