【问题标题】:How can I calculate all of the possible combinations of two 1x6 vectors in MATLAB?如何在 MATLAB 中计算两个 1x6 向量的所有可能组合?
【发布时间】:2017-04-18 01:16:38
【问题描述】:

我有两个 1x6 向量,我最终试图总结它们,但在这样做之前我需要获得这些向量的所有可能组合。向量将如下所示:

V1=[a b c d e f];
V2=[A B C D E F];

我需要找到所有可能的变量组合,这些组合仍然是 1x6 向量。我已经搞砸了一段时间,我想我已经找到了一种使用各种矩阵的方法,但它似乎非常低效。我正在寻找的一个例子如下。

 M=[a b c d e f;
    A b c d e f;
    A B c d e f; 
    A B C d e f; 
    A B C D e f; 
    A B C D E f; 
    A B C D E F;
           . . .]

以此类推,直到找到所有组合。不幸的是,我不是 MATLAB 高手,因此我伸出手来。我确信必须有一种比我一直在尝试的更简单的方法。我希望我的问题比较清楚。任何帮助深表感谢!谢谢!

【问题讨论】:

    标签: matlab matrix vector combinations


    【解决方案1】:

    我使用cellfun 创建索引:

    V1=['abcdef'];
    V2=['ABCDEF'];
    VV = [V1;V2];
    l = length(V1);
    pows = 0:l-1;
    x = num2cell(2.^pows);
    L = x{end};
    rows = cellfun(@(x) reshape([ones(x,L/x);2*ones(x,L/x)],[2*L 1]),x,'Uniformoutput',0);
    rows = cell2mat(rows);
    cols = repmat(1:l,[2*L 1]);
    idxs = sub2ind(size(VV),rows,cols);
    M = VV(idxs);
    

    你会得到:

    M = 
        abcdef
        Abcdef
        aBcdef
        ABcdef
        abCdef
        AbCdef
        aBCdef
        ABCdef
        abcDef
        AbcDef
        ...
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-04-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-11-10
      • 1970-01-01
      • 2015-03-19
      相关资源
      最近更新 更多