0
이 문제가 발생했습니다. 내 데이터 배열에서 그룹간에 중요한 값을 찾을 수 있습니다. 내 솔루션했다 :이 다른 일반적인 솔루션에 온 사용자에게중요한 값을 확인하기 위해 bsxfun을 수정하십시오.
Data = [1.8,1.4, 1.5;
60, 70, 80;
20, 40, 5];
Error = [0.2, 0.1, 0.4;
20, 30, 10;
10,5,2];
k = 1;
for i = 1: size(Data,1)
if ((Data(i,1)-Error(i,1)) > (Data(i,2)+Error(i,2)))
selectedpar(k,1:3) = [i ,1, 2];
k = k+1;
end
if ((Data(i,1)-Error(i,1)) > (Data(i,3)+Error(i,3)))
selectedpar(k,1:3) = [i , 1, 3];
k = k+1;
end
if ((Data(i,2)-Error(i,2)) > (Data(i,3)+Error(i,3)))
selectedpar(k,1:3) = [i , 2, 3];
k = k+1;
end
end
selectedpar = [1 1 2
3 1 3
3 2 3]
감사
DM = Data-Error;
DP = Data+Error;
selectedpar = [];
for k=1:size(Data,1)
[I,J]=find(tril(bsxfun(@gt, DM(k,:), DP(k,:).')));
selectedpar = [selectedpar ; k+zeros(size(I)), J, I]; %#ok<AGROW>
end
지금은 또 다른 조건을 추가 할 것 (조건이있는 경우의 제거 시리즈) : 대신에, 특히 내가
if ((Data(i,1)-Error(i,1)) > (Data(i,2)+Error(i,2)) || (Data(i,1)+Error(i,1)) < (Data(i,2)-Error(i,2))) etc...
를 확인하려는 경우 하나는 나의 추한 솔루션이 될 것
k = 1;
for i = 1: size(Data,1)
if ((Data(i,1)-Error(i,1)) > (Data(i,2)+Error(i,2)) || (Data(i,1)+Error(i,1)) < (Data(i,2)-Error(i,2)))
selectedpar(k,1:3) = [i ,1, 2];
k = k+1;
end
if ((Data(i,1)-Error(i,1)) > (Data(i,3)+Error(i,3)) || (Data(i,1)+Error(i,1)) < (Data(i,3)-Error(i,3)))
selectedpar(k,1:3) = [i , 1, 3];
k = k+1;
end
if ((Data(i,2)-Error(i,2)) > (Data(i,3)+Error(i,3)) || (Data(i,2)+Error(i,2)) < (Data(i,3)-Error(i,3)))
selectedpar(k,1:3) = [i , 2, 3];
k = k+1;
end
end
selectedpar = [1 1 2
3 1 2
3 1 3
3 2 3]
난에서 말했듯이 나는
감사
: 다음 다른
selectedpar = ...
라인과 결과를 수집 – gabboshow