Метод 1:
Вы можете инициализировать y
и z
в пустые массивы и просто добавить соответствующий результат в конце:
% create variable x with array of all necessary values
x=linspace(0.1,13,50);
y=[];
z=[];
for i=x
% create equation to determine y
y(end+1)=(sqrt(2.*i)*4*i.^3)/(4.*i+7.^(i/10));
%create equation to determine z
z(end+1)=log10(2.*i+5)+(4.*i+exp(i))/(2./3+4.*i.^2);
end
Этот подход может оказаться низкая эффективность с точки зрения эффективности, поскольку размер y
и z
изменяется динамически.
Метод 2:
Если вы все еще хотите использовать for
l oop, Лучше предварительно выделить память для y
и z
и повторить индексы x
, например:
% create variable x with array of all necessary values
x=linspace(0.1,13,50);
% Memory allocation
y = zeros(1, length(x));
z = zeros(1, length(x));
for i = 1 : length(x)
% create equation to determine y
y(i)=(sqrt(2.*x(i)*4*x(i).^3)/(4.*x(i)+7.^(x(i)/10));
%create equation to determine z
z(i)=log10(2.*x(i)+5)+(4.*x(i)+exp(x(i)))/(2./3+4.*x(i).^2);
end
Метод 3 (предпочтительный):
Это как правило, более эффективно векторизовать ваши реализации. В вашем случае вы можете использовать что-то вроде:
x = linspace(0.1,13,50);
y = (sqrt(2.*x)*4*.*x.^3) ./ (4*x + 7.^(x./10));
z = log10(2*x+5) + (4*x + exp(x)) ./ (2/3 + 4*x.^2);