【问题标题】:Number of combinations in Matlab is missingMatlab中的组合数缺失
【发布时间】:2020-05-16 21:28:20
【问题描述】:

我正在创建一个包含 3 个系数的组合列表。和为1,每个系数的增量为0.05:

s=0;
for x1 = 0 : 0.05 : 1
    for x2 = 0 : 0.05 : (1-x1)
        x3 = 1-x1-x2;
        s=s+1;
        fprintf('%0.2f %0.2f %0.2f \n',x1,x2,x3)
    end
end

预期的数字是 231,但我得到了 229。 检查结果:

...
0.85 0.00 0.15 
0.85 0.05 0.10 
0.85 0.10 0.05 
0.90 0.00 0.10 
0.90 0.05 0.05 
0.90 0.10 -0.00 
0.95 0.00 0.05 
1.00 0.00 0.00

我发现缺少“0.85 0.15 0.00”和“0.95 0.05 0.00”,但我无法解释原因。谁能给我一些提示。非常感谢您的宝贵时间。

【问题讨论】:

    标签: matlab combinations


    【解决方案1】:

    你在寻求提示,所以我会给你一些提示。

    阅读此问答:Why is 24.0000 not equal to 24.0000 in MATLAB?。现在想想x2 (1-x1) 的上限究竟是多少,以及如何通过以 0.05 为步长递增 0 达到该上限。

    【讨论】:

    • 如果您需要更多提示或更明确的答案,请告诉我。 :)
    • 非常感谢@Cris Luengo,这个提示帮助我解决了这个问题。最良好的祝愿。
    猜你喜欢
    • 1970-01-01
    • 2018-03-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-25
    • 2019-06-06
    相关资源
    最近更新 更多