查看: 262|回复: 16|关注: 0

[已答复] 矩阵取值问题

[复制链接]

新手

5 麦片

财富积分


050


3

主题

12

帖子

0

最佳答案
发表于 2020-3-31 20:16:10 | 显示全部楼层 |阅读模式
求助,假设A矩阵中有n个元素,这n个元素取值都在1到10之间,如何求出A的所有可能,不是取值,而是把A中元素列举出来
回复主题 已获打赏: 0 积分

举报

论坛优秀回答者

3

主题

1230

帖子

264

最佳答案
  • 关注者: 54
发表于 2020-3-31 20:20:45 | 显示全部楼层
试试unique函数,例如
  1. A=[ones(1,10),2*ones(1,10),3*ones(1,10)];
  2. B=unique(A);
复制代码
回复此楼 已获打赏: 0 积分

举报

新手

5 麦片

财富积分


050


3

主题

12

帖子

0

最佳答案
 楼主| 发表于 2020-3-31 20:24:44 | 显示全部楼层
20141303 发表于 2020-3-31 20:20
试试unique函数,例如

这段代码运行出来 B= 1 2 3,不太符合要求啊
回复此楼 已获打赏: 0 积分

举报

论坛优秀回答者

3

主题

1230

帖子

264

最佳答案
  • 关注者: 54
发表于 2020-3-31 20:43:15 | 显示全部楼层
A矩阵就是这三个数啊
回复此楼 已获打赏: 0 积分

举报

论坛优秀回答者

中级

622 麦片

财富积分


5001500


22

主题

945

帖子

105

最佳答案
  • 关注者: 9
发表于 2020-3-31 21:52:56 | 显示全部楼层
本帖最后由 onlye_caisA 于 2020-3-31 22:02 编辑

你这样的可能无限多,就说介于1到10之间
回复此楼 已获打赏: 0 积分

举报

论坛优秀回答者

权威

4292 麦片

财富积分



4

主题

4395

帖子

934

最佳答案
  • 关注者: 212
发表于 2020-3-31 22:16:22 | 显示全部楼层
n=3;%n不能太大。
A=fullfact(10*ones(1,n));
回复此楼 已获打赏: 0 积分

举报

论坛优秀回答者

中级

622 麦片

财富积分


5001500


22

主题

945

帖子

105

最佳答案
  • 关注者: 9
发表于 2020-3-31 22:33:46 | 显示全部楼层
如果是整数,可用nchoosek(n,k)。不是整数,就1.11111111111之类的,就无穷多个
回复此楼 已获打赏: 0 积分

举报

新手

5 麦片

财富积分


050


3

主题

12

帖子

0

最佳答案
 楼主| 发表于 2020-4-1 10:51:00 | 显示全部楼层
maple1314168 发表于 2020-3-31 22:16
n=3;%n不能太大。
A=fullfact(10*ones(1,n));

你这个方法是正确的,但是n我在处理问题的时候是很大的,我该如何解决呢,或者是把A矩阵划分成几个小的矩阵处理。
回复此楼 已获打赏: 0 积分

举报

论坛优秀回答者

权威

4292 麦片

财富积分



4

主题

4395

帖子

934

最佳答案
  • 关注者: 212
发表于 2020-4-1 11:05:12 | 显示全部楼层
a4884886 发表于 2020-4-1 10:51
你这个方法是正确的,但是n我在处理问题的时候是很大的,我该如何解决呢,或者是把A矩阵划分成几个小的矩 ...

本来,组合的数量是指数级递增!
在内存的约束下,可以多循环一下处理多几个。

你是想寻找最优的组合吧?
如果n过于大的话,一般只能放弃!
否则,采取智能算法近似寻找。
回复此楼 已获打赏: 0 积分

举报

新手

5 麦片

财富积分


050


3

主题

12

帖子

0

最佳答案
 楼主| 发表于 2020-4-1 11:15:15 | 显示全部楼层
maple1314168 发表于 2020-4-1 11:05
本来,组合的数量是指数级递增!
在内存的约束下,可以多循环一下处理多几个。

我的目的是寻找一种组合来满足我的要求,只需要找到一种就可以了。那有没有什么办法可以循环一次只生成一条然后判断是否满足我的要求呢,麻烦您了
回复此楼 已获打赏: 0 积分

举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

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