Поскольку вы уже вычислили сумму элементов в квадрате, вам не нужен внутренний цикл.Для двумерного случая вы можете просто написать:
m = m + ((sqrt(B(j, 1).^2 + B(j, 2).^2)) / c);
Для n-мерного случая вы можете переписать цикл следующим образом:
% Input and parameters.
davg = 0;
m = 0;
c = 0.707;
B = [150 90; -100 -120; -80 130; 140 -70; 60 120; -90 -130];
% Get number of data points and dimensionality.
nPoints = size(B, 1);
nDim = size(B, 2);
% Iterate every data point.
for j = 1:nPoints
% Calculate sum of squared elements in loop (for arbitrary dimensionality).
temp = 0;
for i = 1:nDim
temp = temp + B(j, i).^2;
end
% Apply square root afterwards.
m = m + sqrt(temp) / c;
end
% Calculate average.
davg = m / nPoints
IЗнаю, что вы написали, что вам нужно использовать упомянутую формулу, тем не менее, весь расчет можно упростить до:
% Input and parameters.
c = 0.707;
B = [150 90; -100 -120; -80 130; 140 -70; 60 120; -90 -130];
% Calculate average.
davg = mean(vecnorm(B, 2, 2) / c)