我正在设置一个脚本,我希望它系统地通过模块2,3,4,5,6和7的所有可能的2x2,3x3和4x4矩阵。例如,对于模数2 in a 2x2,将有16种可能性(4 ^ 2因为有4个位置,每个位置有2种可能性)。我无法让MATLAB不仅形成所有这些可能性,而且一次只能通过我的脚本。有什么想法吗?
谢谢!
答案 0 :(得分:1)
此解决方案使用来自matlab文件交换的allcomb。
%size
n=2
%maximum value
m=2
%generate input for allcomb
e=cell(1,n^2)
e(1:end)={[0:m-1]}
%generate all combinations.
F=reshape(allcomb(e{:}),[],n,n)
F是3D-Matrix,以获得第一种可能性:
squeeze(F(1,:,:))
答案 1 :(得分:1)
this Q&A的略微概括使作业成为一行:
r = 2; %// number of rows
c = 2; %// number of columns
n = 2; %// considered values: 0, 1, ..., n-1
M = reshape(dec2base(0:n^(r*c)-1, n).' - '0', r,c,[]);
上述r
,c
,n
的结果:
M(:,:,1) =
0 0
0 0
M(:,:,2) =
0 0
0 1
...
M(:,:,16) =
1 1
1 1