How to insert variables (string) in MATLAB function

8 views (last 30 days)
Pk Verma
Pk Verma on 25 Oct 2021
Commented: Pk Verma on 25 Oct 2021
function R=rotmatx(axis,q)
if axis=='x'
R=[1 0 0;0 cos(q) -sin(q); 0 sin(q) cos(q)];
elseif axis=='y'
R=[cos(q) 0 sin(q); 0 1 0; -sin(q) 0 cos(q)];
elseif axis=='z'
R=[cos(q) -sin(q) 0;-sin(q) cos(q) 0; 0 0 1];
else
fprintf('invalid axis');
end
so, i want the output when i call this function
rotmatx('x','t')
the output should be
[1, 0, 0]
[0, cos(t), -sin(t)]
[0, sin(t), cos(t)]
but there is error.
Can someone please help me out for this.
Thank You.

Accepted Answer

Walter Roberson
Walter Roberson on 25 Oct 2021
rotmatx('y', 'p')
ans = 
rotmatx('z', pi/6)
ans = 
function R=rotmatx(axis,q)
Q = sym(q);
if axis=='x'
R=[1 0 0;0 cos(Q) -sin(Q); 0 sin(Q) cos(Q)];
elseif axis=='y'
R=[cos(Q) 0 sin(Q); 0 1 0; -sin(Q) 0 cos(Q)];
elseif axis=='z'
R=[cos(Q) -sin(Q) 0;-sin(Q) cos(Q) 0; 0 0 1];
else
fprintf('invalid axis');
end
end

More Answers (1)

KSSV
KSSV on 25 Oct 2021
Edited: KSSV on 25 Oct 2021
syms t
R=[1 0 0;0 cos(t) -sin(t); 0 sin(t) cos(t)]
R = 
  3 Comments
Pk Verma
Pk Verma on 25 Oct 2021
Do you mean this
function R=tst(t)
syms t
R=[1 0 0;0 cos(t) -sin(t); 0 sin(t) cos(t)];
end
now
tst('p')
now output is...
[1, 0, 0]
[0, cos(t), -sin(t)]
[0, sin(t), cos(t)]
but output should be
[1, 0, 0]
[0, cos(p), -sin(p)]
[0, sin(p), cos(p)]
if i done anything wrong then please write function and then function calling code.

Sign in to comment.

Products


Release

R2021a

Community Treasure Hunt

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

Start Hunting!