MATLAB中文论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 743|回复: 14|关注: 0

[已解决] Matlab中多个向量的组合 有放回的排列问题

[复制链接]

新手

9 麦片

财富积分


050


4

主题

24

帖子

0

最佳答案
本帖最后由 深蓝孩童 于 2017-1-9 19:50 编辑

多个向量的组合问题,如a=[1,2,3];假设分别从a中取3次,则有9种可能。1 1 1
1 1 2
1 1 3
1 2 1
。。。,
请问怎么实现啊?假设次数是可变的,怎么写个通用的函数啊?谢谢

论坛优秀回答者

13

主题

1457

帖子

278

最佳答案
  • 关注者: 35
发表于 2017-1-9 17:56:03 | 显示全部楼层
这是 3 个的, 两个的很麻烦啊
  1. a = 1:3;
  2. [a,b,c] = ndgrid(a);
  3. A = [a(:),b(:),c(:)]
复制代码
回帖请点击左下角的 回复此楼,这样别人才能收到提醒及时回复你;
如果你的问题得到解决,请及时采纳答案。

新手

9 麦片

财富积分


050


4

主题

24

帖子

0

最佳答案
 楼主| 发表于 2017-1-9 18:46:09 | 显示全部楼层
matlabzhanghu 发表于 2017-1-9 17:56
这是 3 个的, 两个的很麻烦啊

请问有没有通用一点的,就是随便指定从一个向量中取几次都能行的啊?

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

中级

534 麦片

财富积分


5001500


12

主题

1000

帖子

102

最佳答案
  • 关注者: 42
发表于 2017-1-9 18:51:48 | 显示全部楼层
combntns(x,m)    列举出从n个元素中取出m个元素的组合。其中,x是含有n个元素的向量

你试下这个符合你要求不。我觉得你这个问题就是排列组合的问题啊

新手

9 麦片

财富积分


050


4

主题

24

帖子

0

最佳答案
 楼主| 发表于 2017-1-9 18:55:21 | 显示全部楼层
18666719439 发表于 2017-1-9 18:51
combntns(x,m)    列举出从n个元素中取出m个元素的组合。其中,x是含有n个元素的向量

你试下这个符合你要 ...

这个不行啊!我这个问题就是排列组合的问题,如从向量[1,2,3]中有放回的取N次的所有组合,你这个好像实现不了啊?

论坛优秀回答者

权威

3511 麦片

财富积分



19

主题

3743

帖子

757

最佳答案
  • 关注者: 310
发表于 2017-1-9 18:58:23 | 显示全部楼层
n = 4
[k{1:n}] = ndgrid(a)
c = reshape(cat(n+1,k{:}),[],n)

新手

9 麦片

财富积分


050


4

主题

24

帖子

0

最佳答案
 楼主| 发表于 2017-1-9 19:04:20 | 显示全部楼层
wuyou136 发表于 2017-1-9 18:58
n = 4
[k{1:n}] = ndgrid(a)
c = reshape(cat(n+1,k{:}),[],n)

你的第二行在我这里报错了。元胞内容赋给非元胞数组对象。请问你用的什么版本啊?

论坛优秀回答者

权威

3511 麦片

财富积分



19

主题

3743

帖子

757

最佳答案
  • 关注者: 310
发表于 2017-1-9 19:06:37 | 显示全部楼层
kantianxia 发表于 2017-1-9 19:04
你的第二行在我这里报错了。元胞内容赋给非元胞数组对象。请问你用的什么版本啊? ...

你在代码前是不是给 k 赋值了?

论坛优秀回答者

权威

3511 麦片

财富积分



19

主题

3743

帖子

757

最佳答案
  • 关注者: 310
发表于 2017-1-9 19:07:53 | 显示全部楼层 |此回复为最佳答案
  1. a = 1:3
  2. n = 3
  3. [k{1:n}] = ndgrid(a)
  4. c = reshape(cat(n+1,k{:}),[],n)
复制代码

只运行这4行代码看是不是还报错

新手

9 麦片

财富积分


050


4

主题

24

帖子

0

最佳答案
 楼主| 发表于 2017-1-9 19:13:40 | 显示全部楼层
wuyou136 发表于 2017-1-9 19:07
只运行这4行代码看是不是还报错

没错了,估计就是前面给K赋值了,才报错的!谢谢啊
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

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