tansuozhe
2009-12-26, 14:32
各位老师:
我是初学matlab。现在遇到一个难题,用matlab的函数combntns()
求1-210共210个自然数的组合,我算从210个自然数中取3个进行组合(不重复),
在matlab命令窗口输入如下函数:
》combntns(1:210,3)
运行计算都正常的列出了所有组合数,可是想算从210个自然数中取20个进行组合(不重复)
我知道这样的组合数非常大为:4.49333E+27,我在在matlab命令窗口输入如下函数:
》combntns(1:210,20)
提示出错信息如下:
Error in ==> combntns at 71
out=[out; choicevec(i)*ones(size(tempout,1),1) tempout]
意思是内存不够吧,现在想请教一下几个问题:
1 提示的内存不够是指内存条不够大,还是硬盘空间不够,这样的大的求组合数,matlab是
否有函数能胜任,如果有,请问是什么函数?
2,如果matlab的函数不能胜任,请问我如何用M文件编程计算从210个自然数中取20个的组合数并列出,
(我想可能一次性算出不大可能),如果分段计算,应该如何编程,烦请各位老师提供一下代码,
期盼各位老师指教......
我是初学matlab。现在遇到一个难题,用matlab的函数combntns()
求1-210共210个自然数的组合,我算从210个自然数中取3个进行组合(不重复),
在matlab命令窗口输入如下函数:
》combntns(1:210,3)
运行计算都正常的列出了所有组合数,可是想算从210个自然数中取20个进行组合(不重复)
我知道这样的组合数非常大为:4.49333E+27,我在在matlab命令窗口输入如下函数:
》combntns(1:210,20)
提示出错信息如下:
Error in ==> combntns at 71
out=[out; choicevec(i)*ones(size(tempout,1),1) tempout]
意思是内存不够吧,现在想请教一下几个问题:
1 提示的内存不够是指内存条不够大,还是硬盘空间不够,这样的大的求组合数,matlab是
否有函数能胜任,如果有,请问是什么函数?
2,如果matlab的函数不能胜任,请问我如何用M文件编程计算从210个自然数中取20个的组合数并列出,
(我想可能一次性算出不大可能),如果分段计算,应该如何编程,烦请各位老师提供一下代码,
期盼各位老师指教......