Matlab求助~矩阵函数赋值
遇到一个问题,大家帮忙解决下,谢了哈!!有一个矩阵A,有12列495行;
请为该矩阵赋值,赋值内容为8个1和4个0共12个数的随机排列组合(共495种不同排法);
请问如何通过函数给该矩阵赋值?
紧急求助,万分感谢!!
回复 楼主 phliply 的帖子
这个有很笨的方法,就是循环搞定,MATLAB中有没有其他的好方法,我还不知道循环就是把所有的情况列出,这个没啥难度吧 P = perms(v) where v is a row vector of length n, creates a matrix whose rows consist of all possible permutations of the n elements of v. The matrix P contains n! rows and n columns.
perms is only practical when n is less than 8 or 9.
回复 板凳 ChaChing 的帖子
谢谢~不过我试过 perms(a)函数,一旦a大于11就会出现问题:
??? Out of memory. Type HELP MEMORY for your options.
不知道是不是数据溢出? 貌似直接用perms做排列不能解决,可以用nchoosek对1:12做12选4形成下标索引,定义一个与前述矩阵同行数、列数12的全1阵,再将前面计算出的索引赋值为0即可。function choose_12_to_4
clc
B=nchoosek(1:12,4);
A=ones(size(B,1),12);
for i=1:size(A,1)
A(i,B(i,:))=0;
end
页:
[1]