查看: 195|回复: 2|关注: 0

[已答复] 如何生成限定范围内所有可能的矩阵?

[复制链接]

新手

7 麦片

财富积分


050


3

主题

4

帖子

0

最佳答案
发表于 2019-9-15 16:19:20 | 显示全部楼层 |阅读模式
比如说,我想生成元素只能是0或者1的3*3矩阵,如何生成所有满足此条件的矩阵?

MATLAB 基础讨论
版块优秀回答者

中级

925 麦片

财富积分


5001500


0

主题

1512

帖子

201

最佳答案
  • 关注者: 36
发表于 2019-9-15 17:53:09 | 显示全部楼层
nchoosek函数结合for循环应该可以实现

例如:nchoosek(1:9,2)可以得到个数为2元素值为1在矩阵中的位置,然后reshape一下得到3*3矩阵

结合for循环得到不同的可能组合就好了

新手

7 麦片

财富积分


050


3

主题

4

帖子

0

最佳答案
 楼主| 发表于 2019-9-16 15:14:15 | 显示全部楼层
WarnerChang 发表于 2019-9-15 17:53
nchoosek函数结合for循环应该可以实现

例如:nchoosek(1:9,2)可以得到个数为2元素值为1在矩阵中的位置,然 ...

我已经找到解决办法了,谢谢。
nchoosek无法使元素重复,我找到一种方法可以基本解决需求
b = unique(perms([0 0 0 0 0 0 0 0 1]),'rows')
for i=1:9
c(:,:,i) = reshape(b(i,:),3,3)
end
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐上一条 /3 下一条

快速回复 返回顶部 返回列表