如何在MATLAB中创建系统矩阵?

时间:2014-04-20 21:18:45

标签: matlab loops matrix modulo

我正在设置一个脚本,我希望它系统地通过模块2,3,4,5,6和7的所有可能的2x2,3x3和4x4矩阵。例如,对于模数2 in a 2x2,将有16种可能性(4 ^ 2因为有4个位置,每个位置有2种可能性)。我无法让MATLAB不仅形成所有这些可能性,而且一次只能通过我的脚本。有什么想法吗?

谢谢!

2 个答案:

答案 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,[]);

上述rcn的结果:

M(:,:,1) =

     0     0
     0     0

M(:,:,2) =

     0     0
     0     1

...

M(:,:,16) =

     1     1
     1     1