gpt4 book ai didi

matlab - 在 Matlab 中生成矩阵的所有可能组合

转载 作者:行者123 更新时间:2023-12-02 07:28:00 25 4
gpt4 key购买 nike

在知道该矩阵的元素只能是 0 或 1 的情况下,如何为 N*M 矩阵生成所有可能的值?

例如,如果我想要一个 2*2 矩阵,我们会得到 16 个具有不同可能组合的矩阵:[0 0;0 0]、[1 1;1 1]、[1 0;0 1]、[1 1; 0 0],[0 0;1 1]...等

最佳答案

使用 dec2base -

combs = dec2base(0:power(2,N*M)-1,2) - '0'

这会生成行中所有可能的组合。因此,要选择任何组合,您需要索引到 combs。因此,第一个组合 [0,0,0,0] 将在 combs(1,:) 可用,最后一个组合 [1,1, 1,1] 将位于 comb(end,:)

如果您的可能值来自不同的集合,例如 0,1,2,3,请进行此编辑 -

combs = dec2base(0:power(4,N*M)-1,4) - '0'

如果您希望获得与输入矩阵大小相同的组合,请使用此 -

combs_matshaped = reshape(permute(combs,[3 2 1]),N,M,[])

这将创建一个 3D 数组,其中包含与组合一样多的 2D 切片,并且矩阵的每个组合都可以使用第三维索引“索引”。例如,如果您打算获得第一个组合,请使用 combs_matshaped(:,:,1),对于最后一个组合,请使用 combs_matshaped(:,:,end) .

关于matlab - 在 Matlab 中生成矩阵的所有可能组合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25641029/

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