Error using subs function of Symbolic Math toolbox

5 ビュー (過去 30 日間)
Chala Kedir
Chala Kedir 2021 年 12 月 29 日
回答済み: Paul 2021 年 12 月 29 日
I am using the following code to generate data to use in Non linear Least Square Estimation
syms a b S
f=@(a,b,S) a+a*b + b*S;
Data =[ ];
for i = 1:10
Data =[Data ; [i, subs(f, [a,b,S], [1,2,i])] ];
end
Error using subs
Expected input number 1, S, to be one of these types:

sym

Instead its type was function_handle.

Error in sym/subs (line 69)
validateattributes(F, {'sym'}, {}, 'subs', 'S', 1);
When I run these I get the following error.
Expected input number 1, S, to be one of
these types:
sym
Instead its type was function_handle.
Error in sym/subs (line 60)
validateattributes(F, {'sym'}, {}, 'subs','S', 1);
I don't understand which at which part I'm making mistake. I even tried by converting sym before using subs but this sill doesn't seem to work.
My MATLAB version is 2019b
  1 件のコメント
Torsten
Torsten 2021 年 12 月 29 日
Use f = a+a*b+b*S instead of f=@(a,b,S) a+a*b+b*S.

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

採用された回答

Paul
Paul 2021 年 12 月 29 日
Use Torsten's suggestion, or
syms a b S
f(a,b,S) = a+a*b + b*S;
Data =[ ];
for i = 1:10
Data =[Data ; [i, f(1,2,i)] ];
end
Data
Data = 
Or more simply
Data = [1:10; f(1,2,1:10)].'
Data = 
Is it certain that sym objects and math is needed here at all?

その他の回答 (0 件)

Community Treasure Hunt

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

Start Hunting!

Translated by