【问题标题】:Matlab nchoosek problemMatlab nchoosek问题
【发布时间】:2011-02-25 11:55:50
【问题描述】:

我的问题与 Matlab 相关。存在一个名为 nchoosek([vector],integer) 的 fnct。通过使用这个函数,我想获得给定向量的所有 2 元素组合。 (即 nchoosek([1:10000, 2]))。如 matlab 文档中所述,这非常慢。

问题是:“有没有更快的方法来做同样的工作?”。

感谢您抽出宝贵时间,非常感谢您的努力。

【问题讨论】:

    标签: matlab combinations performance


    【解决方案1】:

    如果您只需要 2 元素组合,您可以使用NDGRID。请注意,直到N 的所有二元素组合都需要N^2 值,因此如果Matlab 开始分页,该过程会很慢。

    N = 100;
    [xx,yy] = ndgrid(1:N,1:N);
    allCombinations = [xx(:),yy(:)];
    

    请注意函数NDGRIDnchoosek 有很大不同。 前者返回一个包含所有可能的 N^2 组合的双行向量,而后者则省略了两次相同元素的组合,以及仅更改顺序的组合。只导致 (N^2-N)/2 行元素。

    【讨论】:

    • @conapart:请考虑接受/赞成您认为有用的答案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多