【问题标题】:generate all combinations of a variable number of vectors in MATLAB [duplicate]在MATLAB中生成可变数量向量的所有组合[重复]
【发布时间】:2021-11-15 08:49:25
【问题描述】:

我正在寻找一种在 MATLAB 中生成包含所有向量组合的矩阵的方法,如下所示

>> combvec(1:3,2:4)

ans =

     1     2     3     1     2     3     1     2     3
     2     2     2     3     3     3     4     4     4

如我们所见,上面的示例给出了两个向量,即1:32:4。但是,如果我们有一个可变数量的向量,例如v1,v2,...vn其中n 没有给出 em>),那么我们如何生成所有的组合呢?

例如,给定v1,v2,...vn,是否有任何方法可以生成与combvec(v1,v2,...vn) 相同的结果,但不需要写下所有n 向量(因为n 可能是一个很大的数字并且每次都在变化)?

【问题讨论】:

    标签: matlab vector combinations


    【解决方案1】:

    如果作为参数传递,您可以使用mycell{:} 解压缩单元格;单元格的每个元素都将被解释为一个新参数:

    v1 = [1,2,3];
    v2 = [2,3,4];
    v3 = [3,4,5];
    
    % We put everything in a cell
    v = {v1,v2,v3};
    
    % We unpack our cell into combvec
    combvec(v{:})
    

    当然这个例子没什么用,但在实际情况下,你可以简单地将向量直接存储在单元格v{ii} = ...

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-05-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多