Matlab language to C

3 views (last 30 days)
Boby Paul
Boby Paul on 17 Oct 2016
Answered: Guillaume on 17 Oct 2016
Why this functions doesn't work on matlab coder
function [S,er]=somm1(n)
%n est le nombre de terme de la serie
S=0;
for x = 1:n
S=S+4*(-1)^(x-1)*(1/(2*x-1));
er=abs(S-pi)/pi;
end
It is saying that 'er' is not assigned on some exucution path.
How can I resolve this problem? Thank you

Accepted Answer

Guillaume
Guillaume on 17 Oct 2016
If n is smaller than 1, the loop will not execute, hence er will never get created. Either assign a default value to er before the loop e.g.
er = nan;
for ...
or, if matlab coder supports it (I don't have it so don't know), issue an error before the loop if n is not valid:
if n < 1
error('nombre de termes doit etre au moins 1');
end
for ...

More Answers (0)

Categories

Find more on MATLAB Coder in Help Center and File Exchange

Products

Community Treasure Hunt

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

Start Hunting!