matlab中怎么产生一个 集合N中关于某个元素的所有子集?请大侠指教

比例N=[123],现在要求出关于元素2的所有N的子集,即得到结果:S1=[2];S2=[12];S3=[23];S4=[123],怎么用matlab命令或者函数表示?... 比例N=[1 2 3],现在要求出关于元素2的所有N的子集,即得到结果:S1=[2];S2=[1 2 ];S3=[2 3];S4=[1 2 3],怎么用matlab命令或者函数表示? 展开
ruifengcao
2012-02-28 · TA获得超过9491个赞
知道大有可为答主
回答量:3579
采纳率:33%
帮助的人:2092万
展开全部
首先给你说方法,关于这个问题,你可以首先得到这个集合中除去这个元素以外其他N-1各元素的所有子集,然后在每个子集中加入这个元素就可以得到你想要的所有子集了。
首先使用nchoosek函数循环得到N-1个元素的所有子集,然后将这个元素加入到所有的子集中即可!

祝你学习愉快!
追问
你好!感谢你对本问题的回答,关于这个问题我也是这么认为的,但是现在除去这个元素以外的N-1个元素也还是要求所有子集,用nchoosek必须循环N-1次吧,怎么用具体的命令实现呀,可否用一个程序详细举例呀,本人刚学Matlab不是很懂。先谢谢了。
追答
以你的例子为例把
A=[1 3];
B={};
for i=1:length(A)
ziji=nchoosek(A,i);
[n,m]=size(ziji);
for j=1:n
B=[B {ziji(j,:)}];
end
end
for i=1:length(B)
B{i}=[B{i} 2];
end
B

上面的程序最后得到的B中有四个向量,分别是四个子集
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式