gpt4 book ai didi

arrays - Matlab中某些索引的所有可能组合的矩阵

转载 作者:行者123 更新时间:2023-12-04 09:35:51 25 4
gpt4 key购买 nike

考虑一个 Matlab 向量 A尺寸1xL ,报告一些严格的正整数。我想构造一个矩阵 T尺寸prod(A,2)xL报告所有可能的 L -元组来自 1:1:A(1) , 1:1:A(2) , ..., 1:1:A(L) .
例如,取 L=3A=[2 3 1] .然后T可以构造为

[ca, cb, cc] = ndgrid(1:1:A(1), 1:1:A(2), 1:1:A(3));
T= [ca(:), cb(:), cc(:)];
如何将上面的代码推广到通用 L ?

最佳答案

this answer的小修改作品。所需的更改是:

  • 基于 A 定义要“组合”的向量.
  • 替换 {end:-1:1}通过 {:} 在那里建立索引在这里建立索引,以反向字典顺序获得结果。
  • A = [2 3 1];
    vectors = arrayfun(@(x) {1:x}, A); % 1. Define input vectors from A
    n = numel(vectors);
    T = cell(1,n);
    [T{:}] = ndgrid(vectors{:}); % 2. Results will be in reverse lexicographical order
    T = cat(n+1, T{:});
    T = reshape(T,[],n);

    关于arrays - Matlab中某些索引的所有可能组合的矩阵,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62593020/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com