matlab怎么将一个数字拆分成3个数字之和,且每个数字不小于10

例如:将50可以拆分成15+15+20,
或者拆成16 14 20这种的,但是每个数字不能小于10

你好,可以这样做:

q = [];
for i = 10:50
    for j = 10:50
        for k = 10:50
            if(i+j+k==50)
                q = [q;[i,j,k]];
            elseif(i+j+k>50)
                break;
            end
        end
    end
end
q = unique(q,'rows') %q就是你需要的

枚举效果,最后得到两百多组:
每一行都有三个数分别是i,j,k

q =

    10    10    30
    10    11    29
    10    12    28
    10    13    27
    10    14    26
    10    15    25
    10    16    24
    10    17    23
    10    18    22
    10    19    21
    10    20    20
........
    27    12    11
    27    13    10
    28    10    12
    28    11    11
    28    12    10
    29    10    11
    29    11    10
    30    10    10

太多了,只列举了头尾,有帮助还请题主给个采纳支持一下答主哦,谢谢啦