How to change two variables in one loop?

2 次查看(过去 30 天)
Hi... I have something like this..
d(1)=0.3
a(1)=0.5
for i=1:5
/some code/
a(i+1)=a(i)-0.5*p
d(i+1)=d(i)-0.3*p+0.5*N
end
p and N are parameters,, and I want to change a and d variables in this loop simultaneously.. how can I do that? Thank you .

回答(1 个)

the cyclist
the cyclist 2020-7-13
编辑:the cyclist 2020-7-13
There are many things about your question that I don't fully understand. The least important is whether you meant the loop to go over k rather than i. If not, then I don't understand how i is supposed to be used.
Most importantly, I don't really understand what you mean by "simultaneously" here. Do you mean that you want to somehow execute
a(k+1)=a(k)-0.5*p
and
d(k+1)=d(k)-0.3*p+0.5*N
in a single line of code?
Why? These two lines of code do not affect each, and could be executed in either order, with same result.
You could define a function that returns a and d "simultaeously", but I'm not sure of the point of that.
Maybe I just don't fully understand your question.
  5 个评论
the cyclist
the cyclist 2020-7-14
编辑:the cyclist 2020-7-14
When I turn that code, I get a different error. When MATLAB calls the line
g=(u_g( Z(:,1), Z(:,3), Z(:,2) ).');
I get the error
Unrecognized function or variable 'u_p'.
because
u_g = @(x, x_e, N)(-0.5*a.*x.^2+b*(x-x_e)-c*(N.^l)+e*u_p(x,x_e,N,d(k)));
and u_p is not defined in your code.
Ani Asoyan
Ani Asoyan 2020-7-14
yeah sorry because there's a function called u_p ,,,here's its code
function u=u_p(x,x_e,N,d)
d=0.7-0.6*x+0.4*N
u = -(x-x_e).^2+N.*d;
end

请先登录,再进行评论。

类别

Help CenterFile Exchange 中查找有关 Loops and Conditional Statements 的更多信息

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by