Error using sym/subs>normalize, Error in sym/subs>mupadsubs, Error in sym/subs
6 views (last 30 days)
Show older comments
Hi,
I want to generate a jacobian matrix (12x24) and run into trouble when trying to substitute my vectors.
syms x_s y_s R_s
syms vx_s [1 12]
syms vy_s [1 12]
B = jacobian([sqrt((x_s+vx_s).^2+(y_s+vy_s).^2)-R_s], [vx_s,vy_s]);
B = double(subs(B,{x_s,vx_s,y_s,vy_s,R_s},{x,vx,y,vy,R}));
My vx and vy vectors are 12x1, as well as x and y.
I get the following error:
"Error using sym/subs>normalize (line 231)
"Entries in second argument must be scalar.
"Error in sym/subs>mupadsubs (line 157)
"[X2,Y2,symX,symY] = normalize(X,Y); %#ok
"Error in sym/subs (line 145)
" G = mupadsubs(F,X,Y);
"Error in Ex9Task2 (line 84)
" B = double(subs(B,{x_s,vx_s,y_s,vy_s,R_s},{x,vx,y,vy,R}));
Is there any workaround for this?
Thank you in advance.
0 Comments
Answers (1)
Tanmay Das
on 6 Aug 2021
subs() can accept an array of variables as its second parameter, and another array the same size as the third parameter, and does a substitution of scalars according to corresponding positions.
subs() can also accept a cell array of variables for the second parameter, and a cell array the same size as the third parameter, and will do a simultaneous substitution of the (possibly array) contents of the cell for the corresponding variable.
But subs() cannot accept a cell array that contains multiple non-scalar arrays for the second parameter. Each cell entry must be scalar.
With respect to the question, you can try the following:
B = double(subs(B,[x_s,vx_s,y_s,vy_s,R_s],[x,vx,y,vy,R]));
Instead of:
B = double(subs(B,{x_s,vx_s,y_s,vy_s,R_s},{x,vx,y,vy,R});
0 Comments
See Also
Categories
Find more on Symbolic Variables, Expressions, Functions, and Settings in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!