매트릭스 B
(126 x 7)에서 중간 절대 편차 이상 분석을 실행 중입니다. 아래 코드가 작동한다고 생각했지만 크기가 일치하지 않는 오류가 발생했습니다. 누구든지 나를 도울 수 있습니까? 저는 아직 MATLAB 초보자입니다.for 루프의 MAD 이상치 분석
b(:,j) = a(x);
이 x
경우 (즉 아웃 라이어가 발견 된) 일부 0을 포함, a(x)
의 출력이 a
원래보다 작 :
b = B; %identifying raw data for outlier analysis
k=size(B,2); %preallocating size of loop to run to be equivalent to number columns in B
for j= 1:k
a=b(:,j); %identify data used
fa = abs(a-median(a))./(mad(a,1)./.6745); %if x>3.5 then outlier
dec_mad=fa>2.24; %logical operator identifying outlier
nout(j)=sum(dec_mad); %sum of outliers
x = dec_mad ==0; % logical of data with outliers removed
b(:,j) = a(x); %data without outliers
end
그냥 의견. 'k = size (B, 2);'행은 아무 것도 미리 할당하지 않고 실제로 변수에 값을 저장하고 있습니다. 변수'a'를'a = zeros (size (b)) '라는 표현식으로 미리 할당 할 수 있습니다. – tashuhka