You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MATLAB中如何生成可变数量向量的所有组合矩阵

MATLAB可变数量向量生成全组合矩阵实现方案

方案1:使用官方combvec(需深度学习工具箱)

不需要手动逐个输入参数,只需要将所有待组合向量存入元胞数组,通过元胞展开语法传入即可:

% 将任意数量的输入向量存入元胞数组,n个向量就对应元胞的n个元素
vec_cell = {1:3, 2:4, 7:9}; % 可根据实际需求增减向量数量

% 自动展开元胞为combvec的输入参数,输出和combvec(v1,v2,...vn)完全一致
res = combvec(vec_cell{:});

方案2:无工具箱自定义实现

如果没有安装深度学习工具箱无法使用combvec,可使用如下兼容基础MATLAB环境的自定义函数,同样支持任意数量输入向量:

自定义函数代码

function res = custom_combvec(vec_cell)
    vec_num = length(vec_cell);
    vec_lens = cellfun(@length, vec_cell);
    total_combs = prod(vec_lens);
    res = zeros(vec_num, total_combs);
    rep_cnt = 1;
    tile_cnt = total_combs;
    for k = 1:vec_num
        tile_cnt = tile_cnt / vec_lens(k);
        res(k,:) = repmat(repelem(vec_cell{k}, rep_cnt), 1, tile_cnt);
        rep_cnt = rep_cnt * vec_lens(k);
    end
end

调用示例

vec_cell = {1:3, 2:4};
res = custom_combvec(vec_cell);

输出结果和官方combvec输出完全匹配。

内容的提问来源于stack exchange,提问作者ThomasIsCoding

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 03:36:02