Why the numerical values for function handle from matlabFunction should be written one by one?

Hi guys,
I am now using matlabFunction for change a symbolic expression into a funtion handle.
I find a question like this: if I write the numeric values one by one to replace the symbolic variables like this:
1.JPG
then the answer can be obtained as 3.
However, if I write
F2= f( aa )
then, in the command window, it shows like this:
3.JPG
Could anyone help me about this question?
Thanks so much!

2 件のコメント

Stephen23
Stephen23 2018 年 12 月 12 日
編集済み: Stephen23 2018 年 12 月 12 日
What exactly is the problem?
Three scalar input arguments are not the same as a three-element vector input argument.
Tony Cheng
Tony Cheng 2018 年 12 月 13 日
Hi Stephen,
Thanks so much for your reply!
I mean, the arguments cannot be input into the function handle in a vertor manner, but they are input as scalars. The number of variables in the problem is big, then we have to write the scalars one by one like this :
F2 = f( aa(1) , aa(2) , aa(3) , aa(4) , aa(5) , aa(6) , aa(7) , aa(8) , aa(9) , aa(10) , aa(11) , aa(12) , aa(13) , aa(14) , aa(15) , aa(16) , aa(17) , aa(18) , aa(19) , aa(20) , aa(21) , aa(22) ) ;
Are there any methods to write them in a more compact way?
Cheers

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

 採用された回答

madhan ravi
madhan ravi 2018 年 12 月 12 日
編集済み: madhan ravi 2018 年 12 月 12 日
Because your function requires three inputs but you fed in 1
f(aa(1),aa(2),aa(3))

6 件のコメント

Tony Cheng
Tony Cheng 2018 年 12 月 13 日
Hi madhan,
Thanks so much for your reply!
I mean, the arguments cannot be input into the function handle in a vertor manner, but they are input as scalars. The number of variables in the problem is big, then we have to write the scalars one by one like this :
F2 = f( aa(1) , aa(2) , aa(3) , aa(4) , aa(5) , aa(6) , aa(7) , aa(8) , aa(9) , aa(10) , aa(11) , aa(12) , aa(13) , aa(14) , aa(15) , aa(16) , aa(17) , aa(18) , aa(19) , aa(20) , aa(21) , aa(22) ) ;
Are there any methods to write them in a more compact way?
Cheers
Walter Roberson
Walter Roberson 2018 年 12 月 13 日
Yes using vars is the way to go. Pass aa cell array as vars and within the cell array each vector of variable names will be bunched together into aa single argument .
Tony Cheng
Tony Cheng 2018 年 12 月 13 日
Dear Madhan,
Many thanks Madhan for the fast and efficient reply!
I think it must be an answer! I will try later when connecting to the PC with matlab!
It is really an amazing charm working in that way!
Cheers
madhan ravi
madhan ravi 2018 年 12 月 13 日
Anytime :) , if you got the answer to your question make sure to accept the answer.

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

その他の回答 (0 件)

カテゴリ

ヘルプ センター および File ExchangeLoops and Conditional Statements についてさらに検索

製品

質問済み:

2018 年 12 月 12 日

コメント済み:

2018 年 12 月 13 日

Community Treasure Hunt

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

Start Hunting!

Translated by