Error using fprintf Unable to convert 'sym' value to 'double'.

I am new in Matlab, and basically it seems I am not using the symbolic variables correctly.
t=0:0.5:10;sm x ;
R=zeros(1,length(t),'sym');
for ii=1:length(t)
f=tanh(x)^2/(x^2)*cos((x*tanh(x))^(1/2)*t(ii));
R(ii)=(2/pi)* int(f,x,0,inf);
fprintf('%2.1f\t %3.10f\n',[t(ii); R(ii)])
end

 Accepted Answer

If you have R2016b or later, use vpaintegral:
This works (with the fprintf call corrected to eliminate the spaces between the backslant and the characters they escape, and a few other corrections):
t = 0: 0.5: 10;
syms x;
R = zeros (1, length (t),'sym');
for ii = 1: length (t)
f = tanh (x) ^ 2 / (x ^ 2) * cos ((x * tanh (x)) ^ (1/2) * t (ii));
R (ii) = (2 / pi) * vpaintegral (f, x, 0, inf);
fprintf ('% 2.1f \t% 3.10f \n', [t (ii); R (ii)])
end
.

6 Comments

Thank you for the quick reply. It certainly works!!!
My pleasure!
If my Answer helped you solve your problem, please Accept it!
.
haha, sorry. My page is in japanese and it didn't translated the bottom lol. I have to change the language. :)

Sign in to comment.

More Answers (0)

Categories

Find more on Mathematics in Help Center and File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!