# How to return a value in a recursive function in MATLAB

15 views (last 30 days)
Arindam Bose on 25 Mar 2019
Commented: Arindam Bose on 25 Mar 2019
I have a recursive function to calculate the multiplicative persistence of an integer. I can print the value inside the function. My question is how can I return the value to the outside of the function.
Here is my code:
I want to return the value of num
function per(n, varargin)
if nargin == 1
num = 0;
else
num = varargin{1};
end
s = num2str(n);
if (length(s) == 1)
disp(['Persistence: ' num2str(num)]);
return;
end
num = num + 1;
res = 1;
for i = 1:length(s)
res = res * str2double(s(i));
end
per(res, num);
end
Something like num = per(n)

Walter Roberson on 25 Mar 2019
function num = per(n, varargin)
and at the end, probably
num = per(res, num)
Arindam Bose on 25 Mar 2019
Wow, thanks a bunch. Works like a charm.

### Categories

Find more on Characters and Strings in Help Center and File Exchange

### Community Treasure Hunt

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

Start Hunting!