Matlab通过忽略零和特定条件找到最小值
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
我做空数据变成这样
s数据=
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
符合这条规则
- if yi >= 0 then output = max row sdata
if yi < 0 theris 2 条件:
一个。如果 sdata 成员只有 0 和 1 那么输出 = 最小行 sdata =0
b。如果 sdata 成员包括 0 和 1 之间的数字,则输出 = min sdata except zero
所以我想找到这样的输出
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
returnstable0和1,sdata(i,sdata(i,:)>0)
returns满足指定条件的元素。
所以我有这个数据
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
我做空数据变成这样
s数据=
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
符合这条规则
- if yi >= 0 then output = max row sdata
if yi < 0 theris 2 条件:
一个。如果 sdata 成员只有 0 和 1 那么输出 = 最小行 sdata =0
b。如果 sdata 成员包括 0 和 1 之间的数字,则输出 = min sdata except zero
所以我想找到这样的输出
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
returnstable0和1,sdata(i,sdata(i,:)>0)
returns满足指定条件的元素。