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

3 vues (au cours des 30 derniers jours)
Sila Fundora
Sila Fundora le 30 Sep 2020
Commenté : Star Strider le 7 Oct 2020
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

Réponse acceptée

Star Strider
Star Strider le 30 Sep 2020
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 commentaires
Sila Fundora
Sila Fundora le 6 Oct 2020
haha, sorry. My page is in japanese and it didn't translated the bottom lol. I have to change the language. :)
Star Strider
Star Strider le 7 Oct 2020
No worries!
Thank you!

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Mathematics dans Help Center et File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by