Subs function doesn't fully replace the values

27 views (last 30 days)
I'm testing the subs function and I was wondering why when I use a sin or cos, I don't get the numeric value and instead get this longer version. Also, will it keep getting bigger and bigger if I keep working with that matrix? Here's the code I'm using:
syms X Y Z W
q = [X, Y, Z, W];
q_1 = [1, 2, 3, 4];
phi = [(2*X-W)^2 X^2-2*Y Y*sin(Z)];
J = jacobian(phi,q);
disp(J);
J_1 = J;
J_1 = subs(J, q, q_1);
disp(J_1);
And here it is what is shown in the displays:
[8*X - 4*W, 0, 0, 2*W - 4*X]
[ 2*X, -2, 0, 0]
[ 0, sin(Z), Y*cos(Z), 0]
[-8, 0, 0, 4]
[ 2, -2, 0, 0]
[ 0, sin(3), 2*cos(3), 0]

Accepted Answer

VBBV
VBBV on 16 Apr 2024 at 22:33
syms X Y Z W
q = [X, Y, Z, W];
q_1 = [1, 2, 3, 4];
phi = [(2*X-W)^2 X^2-2*Y Y*sin(Z)];
J = jacobian(phi,q);
disp(J);
J_1 = J;
J_1 = subs(J, q, q_1);
disp(double(J_1));
-8.0000 0 0 4.0000 2.0000 -2.0000 0 0 0 0.1411 -1.9800 0
  2 Comments
VBBV
VBBV on 16 Apr 2024 at 22:34
Edited: VBBV on 16 Apr 2024 at 22:36
Use double for numeric (float) values
Roberto Toledo Fdez-Cañaveral
Roberto Toledo Fdez-Cañaveral on 17 Apr 2024 at 7:48
Thank you for the quick answer! I appreciate it!

Sign in to comment.

More Answers (0)

Tags

Products


Release

R2024a

Community Treasure Hunt

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

Start Hunting!