# Error using subs function of Symbolic Math toolbox

5 views (last 30 days)
Chala Kedir on 29 Dec 2021
Answered: Paul on 29 Dec 2021
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

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
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
Torsten on 29 Dec 2021
Use f = a+a*b+b*S instead of f=@(a,b,S) a+a*b+b*S.

Paul on 29 Dec 2021
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?