how to filter out decimals

4 visualizaciones (últimos 30 días)
Osman Ballhysa
Osman Ballhysa el 4 de Mayo de 2021
Editada: Jan el 5 de Mayo de 2021
function s = Fnkt(n)
syms k x
s = symsum(k,k,0,n);
if s<=0
s = 0;
end
Can somebody help me figure out, how do i filter out decimals ?
Example:
Fnkt(2) , then i will get 1+2=3
for negative numbers i want to get 0 .
But how do i get rid of decimals, for example Fnkt (2.5) or neg. decimals (-2.5) to get also a zero ?

Respuesta aceptada

Jan
Jan el 4 de Mayo de 2021
Editada: Jan el 5 de Mayo de 2021
function s = Fnkt(n)
if n <= 0 || n ~= floor(n)
s = 0;
return;
end
syms k x
s = symsum(k,k,0,n);
end
Do you realy want to calculate this symbolically? What about:
function s = Fnkt(n)
if n <= 0 || n ~= floor(n)
s = 0;
else % sum(1:n) with Gauss' method:
s = n * (n + 1) / 2;
end
end
  2 comentarios
Osman Ballhysa
Osman Ballhysa el 4 de Mayo de 2021
thank you , oohhh i see. it could also work with round(n) instead of floor(n)
Osman Ballhysa
Osman Ballhysa el 4 de Mayo de 2021
yeah i was just messing around and trying, symsum was probabily not the smartest way to do it

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Symbolic Math Toolbox en Help Center y File Exchange.

Community Treasure Hunt

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

Start Hunting!

Translated by