Why this functions doesn't work on matlab coder
function [Rs] = Racineb(s)
imax=25;
emax=0.00001;
x=s;
if s<0
Rs='erreur';
disp('le paramètre entrée s doit être positif')
end
for i=1:imax
Rs=x-(x^2-s)/(2*x);
E=abs((Rs-x)/x);
x=Rs;
if E<emax
break
end
end
if E>emax
Rs='erreur';
disp('Le nombre de 25 itération a ete atteint sans avoir trouvé la solution')
end
It is saying that this assignment writes a 'double' value into a 'char' type. The problem is with Rs and x.
How can I resolve this problem? Thank you

 採用された回答

Sean de Wolski
Sean de Wolski 2016 年 10 月 18 日

0 投票

Don't convert Rs to a char!
Rs is a double here:
Rs=x-(x^2-s)/(2*x);
Here you convert it to a char.
Rs='erreur';
Use a different variable instead or set Rs to nan.

その他の回答 (0 件)

カテゴリ

タグ

質問済み:

2016 年 10 月 18 日

回答済み:

2016 年 10 月 18 日

Community Treasure Hunt

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

Start Hunting!

Translated by