У меня есть переменная величина, содержащая два вектора. Я хочу суммировать эти величины от i = 1 до n, где n = 100. Когда программа запущена, я могу щелкнуть по переменным в рабочем пространстве, чтобы увидеть значения элементов векторов для каждой позиции столбца. При выполнении переменной ее положения я получаю соответствующее значение (например, z (1) = 73.2360, z (2) = 63.3701, .... и т. Д.). Но то, что я не могу понять, это то, как индексировать те векторы для суммы, пробегающей элементы двух векторов. Например, в цикле for. Я также взглянул на symsum()
, но для этого нужны только общие переменные. Я пытаюсь суммировать epsilon от i = 1 до 100, где z_i и w_i - представляющие интерес векторы. Я надеюсь, что MWE покажет больше того, чего я хочу достичь.Как суммировать элементы векторов
MWE:
a = 0.6;
b = sqrt(16-a^2);
c = 6.5;
d = sqrt(225-c^2);
xh = randn(1,100);
yw = randn(1,100);
z = a*xh + b*yw + 68;
w = c*xh + d*yw + 160;
n = 100; % # of data entries.
zbar = ((1/n)*sum(z)); % Height data.
wbar = ((1/n)*sum(w)); % Weight data.
Zbarv = zbar*ones(1,100); % Height data vector.
Wbarv = wbar*ones(1,100); % Weight data vector.
sz = sqrt((1/n)*((z-Zbarv)*(transpose(z)-transpose(Zbarv))));
sw = sqrt((1/n)*((w-Wbarv)*(transpose(w)-transpose(Wbarv))));
czw = ((1/n)*(w-Wbarv)*(transpose(z)-transpose(Zbarv)));
rzw = czw/(sz*sw);
b = wbar - ((czw/sz^2)*zbar); % y-intercept
m = czw/sz^2; % Slope
epsilon = (1/(n-1))*sum((w-(m*z+b)).^2); % Error
Эпсилон следует суммированием, но должна быть сумма от i=[1,100]
. Я не знаю, как индексировать значения векторов w_i
и z_i
для того, чтобы сумма их пропустила. Я пробовал сделать для них входную переменную вроде z(i)
и w(i)
, но получился беспорядочным.
Любые предложения?
Итак, вы хотите рассчитать сумму первых элементов i для каждого значения 'i' между 1 и 100? –