how to filter out decimals

1 次查看(过去 30 天)
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 ?

采纳的回答

Jan
Jan 2021-5-4
编辑:Jan 2021-5-5
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 个评论
Osman Ballhysa
Osman Ballhysa 2021-5-4
thank you , oohhh i see. it could also work with round(n) instead of floor(n)
Osman Ballhysa
Osman Ballhysa 2021-5-4
yeah i was just messing around and trying, symsum was probabily not the smartest way to do it

请先登录,再进行评论。

更多回答(0 个)

Community Treasure Hunt

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

Start Hunting!

Translated by