[英]Matlab find minimum value by ignoring zero and certain condition
so i have this data 所以我有这个数据
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
and i short that data become like this 我说数据变得像这样
sdata = 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
with this rule 这个规则
if yi < 0 theris 2 conditions: 如果yi <0 theris 2条件:
a. 一种。 if sdata member only 0 and 1 then output = min row sdata =0
如果sdata成员只有0和1,则输出=最小行sdata = 0
b. b。 if sdata member including number between 0 and 1 then output = min sdata except zero
如果sdata成员包括0到1之间的数字,则输出=最小sdata,但零除外
so i want to find an output like this 所以我想找到这样的输出
output=
0.2000
1.0000
1.0000
1.0000
0
1.0000
i still stuck to this point 我仍然坚持到这一点
for i=1:5
if yi(i)>=0
output(i)=max(sdata(i,:));
else
output(i)=min(sdata(i,:));
end;
end;
outputnya=output'
Try this: 尝试这个:
else
minVal = min(sdata(i,sdata(i,:)>0))
if minVal == 1
output(i)=min(sdata(i,:));
else
output(i) = minVal;
end;
end;
Explanation: sdata(i,:)>0
returns table of 0 and 1, sdata(i,sdata(i,:)>0)
returns element which meet specified condition. 说明:
sdata(i,:)>0
返回表0和1, sdata(i,sdata(i,:)>0)
返回满足指定条件的元素。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.