# Change a variable in a function.

19 ビュー (過去 30 日間)
Anas Albizreh 2019 年 11 月 28 日
コメント済み: Nicolas B. 2019 年 11 月 29 日
Im using the fsolve function inside a loop and there is an integer inside the fsolve function that will change the solution of the fsolve, i want to increment that number each time the loop is conducted, i defined the term in global and gave it a value of 1 intially, then i tried using A=A+1 inside the loop but the fsolve gave me the final answer only to that equation and i tried putting the A=A+1 inside the function but it gave me an error.

サインインしてコメントする。

### 回答 (1 件)

Nicolas B. 2019 年 11 月 28 日
I never tried with global variables but, in your case, I would recommend you to set your A has an input. What I understand, all variables which are not inputs of the function_handle are set as constant in the function_handle when you define it (but I could be wrong). So I would recommand to define your function handle as:
A = 1;
f = @(in1, in2, A) you_function(in1, in2, A);
while your_condition
f(in1, in2, A);
A = A + 1;
end
##### 9 件のコメント7 件の古いコメントを表示7 件の古いコメントを非表示
Anas Albizreh 2019 年 11 月 29 日
Can you tell me how to do it, i tried doing it but it didn't work.
Nicolas B. 2019 年 11 月 29 日
I don't have the optimization toolbox, so I cannot test it, but it should work like that (only the necessary code is shown:
global U Lg L2 L3 L4 L1 Th1 Th2
...
x = fsolve(@(x) myfunc(x, A),x0);
...
function F = myfunc(X, A)
global U Lg
thA = X(1);
th2 = X(2);
F(1) = real( U*exp(1i*th2)-A*exp(1i*thA)-Lg );
F(2) = imag( U*exp(1i*th2)-A*exp(1i*thA)-Lg );
end

サインインしてコメントする。

### カテゴリ

Help Center および File ExchangeWhos についてさらに検索

R2018a

### Community Treasure Hunt

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

Start Hunting!

Translated by