【问题标题】:matlab nchoosek limitation workaroundmatlab nchoosek 限制解决方法
【发布时间】:2013-07-12 22:08:04
【问题描述】:

我想使用 matlab 创建一个矩阵,其中包含数据集 V= 0:46 中大小为 8 的所有可能组合。使用 nchoosek 似乎无法做到这一点。有人可以帮我解决问题吗?谢谢

【问题讨论】:

    标签: matlab permutation combinations


    【解决方案1】:

    如果您愿意创建一个由 314457495×8 个元素组成的矩阵,您可以创建自己的函数。递归解决方案是

    function R = nck(v, k)
    if k==1,
        R = v(:);
    elseif k==numel(v),
        R = v(:)';
    else
        R0 = nck(v(1:end-1),k);
        R1 = nck(v(1:end-1),k-1);
        R = [R0; R1, v(end)*ones(size(R1,1),1)];
    end
    R = sortrows(R);
    end
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-09-03
      • 1970-01-01
      • 2018-06-25
      • 2019-06-02
      • 1970-01-01
      • 2016-08-31
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多