MATLAB: Can you find the error in this code that aims to sum the digits of a string

for loopMATLABwhile loop

I wrote this code in order to sum the digits of any string, and to also create a loop that stops the summing process when the length of the sum is equal to a single digit.
What's wrong?
n = '12361927'
function d = sumdigits(n)
s=0
for i=1:length(n)
s=s+str2double(n(i))
end
end
s=sumdigits(n)
if length(str2num(s))==1
s=s
else
while length(str2num(s))~=1
if length(str2num(s))==1
break
else
s=sumdigits(s)
end
end
end

Best Answer

Simpler:
str = '12361927'
while numel(str)>1
num = sum(str-'0')
str = num2str(num)
end
Prints this in the command window:
str = 12361927
num = 31
str = 31
num = 4
str = 4