how to filter out decimals

4 visualizzazioni (ultimi 30 giorni)
Osman Ballhysa
Osman Ballhysa il 4 Mag 2021
Modificato: Jan il 5 Mag 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 ?

Risposta accettata

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

Accedi per commentare.

Più risposte (0)

Categorie

Scopri di più su Symbolic Math Toolbox in Help Center e File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by