我有以下功能,其中我尝试接收向量(VectorX
)和标量(thresholdY
)。我想检查1)vectorX
中的任何元素是否小于thresholdY
和2)vectorX
的最小元素是否小于{{1}的第二个最小元素的0.8倍}。
如果1)和2)都满意,那么我想返回我们当前所在的vectorX
索引。
这就是我现在所知道的(抱歉它有点乱):
vectorX
有人能告诉我哪里出错了吗?我期待的答案是44,但我一直都是0。
如果它有用,请按以下方式将参数传递给我的函数:function [Z] = findCorr(vectorX, thresholdY)
Z = 0;
%A is our vector (for easier use)
A = vectorX;
%As is our sorted vector
As = sort(vectorX,'ascend');
%Am is A's min and Am2 is the second smallest value in A
Am = min(As);
Am2 = As(2);
%Ap is 0.8 of Am2
Ap = Am2 / 100 * 80;
%flag for breaking out of all loops
flag = 0;
for i = 1:A
if A(i) < thresholdY && Am < Ap
Z = find(A(:,i));
flag = 1;
break
else
Z = 0;
end
%use a flag to break out of loop
if flag == 1
break
end
end
Z