Я запускаю средний анализ отклонения абсолютного отклонения на матрице B
(126 x 7). Я думал, что мой код ниже работает, но я получаю сообщение о несоответствии размеров. Может кто-нибудь мне помочь? Я все еще новичок в MATLAB.MAD outlier analysis in for loop
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