怎么去解决以下的matlab问题

使用字母ABCD…OP,共16个字母来表示1、2、3..16,共16个数,则AA表示17,AB表示18,…BA表示33,以此类推。请设计一个程序,能够实现输入一个正整数,输出对应的字母表示,并计算数字4000,10000的字母值。

你好同学,代码供参考:

n = 4000; % 需要转换的数
s = [];
while(n~=0) % 得到16进制数
    p = mod(n,16);
    s = [p,s];
    n=(n-p)/16;
end
% 得到下标s
for i = length(s):-1:2
    if(s(i)==0)
        s(i)=16;
        s(i-1)=s(i-1)-1;
    end
end
if(s(1)==0)
    s(1)=[];
end
% 换算成字母表示
code = 'A':'P';
result = code(s) % 结果输出

几个例子
n=4000

result =

    'OIP'

n=10000

result =

    'BFPP'

n=33

result =

    'BA'

有帮助还望给个采纳支持一下答主答题哟