フィルターのクリア

how to use anonymous function with equation without retype the all equation?

2 ビュー (過去 30 日間)
Dear all,
does anyone know how to use the anonymous function with equation that already defined without type it again. For example,eq1 = x^2+3+y^3; sol=@(x,y) eq1. I tried eq1(2,2) but it does not work as wished. Please help
Best regards, Aziz

採用された回答

Matt J
Matt J 2017 年 3 月 21 日
編集済み: Matt J 2017 年 3 月 21 日
If x, y and eq1 are symbolic variables, then there is no reason to be wrapping eq1 in an anonymous function. Just use the subs() command to evaluate eq1 at desired values. E.g.,
>> syms x y
>> eq1 = x^2+3+y^3
eq1 =
x^2 + y^3 + 3
>> val=double(subs(eq1,[x,y],[2,2]))
val =
15
If you insist on wrapping it in anonymous function, you could do something like,
sol=@(a,b) double(subs(eq1,[x,y],[a,b]))
  1 件のコメント
Walter Roberson
Walter Roberson 2017 年 3 月 21 日
If you are starting from symbolic expressions, then use matlabFunction() to create function handles for numeric processing.

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

その他の回答 (2 件)

Stephen23
Stephen23 2017 年 3 月 21 日
編集済み: Stephen23 2017 年 3 月 21 日
>> sol = @(x,y)x^2+3+y^3;
>> sol(2,2)
ans =
15
exactly as the documentation shows:
  3 件のコメント
James Tursa
James Tursa 2017 年 3 月 21 日
Then please show us more detail about your problem. Where is the equation coming from? What is this iterative process doing? Etc.
Abdulaziz Abutunis
Abdulaziz Abutunis 2017 年 3 月 21 日
not necessary info for the question..if there is no way to do it then i will switch to another technique

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


Steven Lord
Steven Lord 2017 年 3 月 21 日
As written, eq1 is not an equation. x and y must be defined before you execute "eq1 = x^2+3+y^3;" or you will receive an error. If you want to define the equation once and use it later, execute:
sol = @(x,y) x.^2+3+y.^3;
Note I used .^ so you can call sol with a nonscalar array, not just a scalar. If you need eq1 to be the value of that function for specific values of x and y:
eq1 = sol(2, 2)

Community Treasure Hunt

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

Start Hunting!

Translated by