如何使用子矩阵选择主矩阵的位,并将所选的位存储在数组中



设CCD_ 1,其包含二进制位(nXn矩阵(

A=[ 1 0 1 0 1 0 ; 0 1 1 0 1 1;1 1 0 1 1 0; 0 0 1 0 0 1;0 1 1 0 1 1;0 1 0 1 1 1];

BA3x3子矩阵

B = [1 0 1;0 1 1;1 1 0];

现在,我想要选择比特1 0 1 1 0,即,需要选择存在于位置(1,1) (1,2) (2,2) (3,2) (3,3)中的比特。

接下来,我需要遍历主矩阵A中的这个模式。

因此,对于上述模式,所选择的总比特将是20,而剩余位置比特将是A = 6x6 matrix0。

我想在一个数组中存储按模式选择的值,并在另一个数组存储其余位置值的值。

模式选择值,

`p1=[1 0 1 1 0 0 1 1 1 0 0 0 1 1 0 0 0 1 1 1];` 

剩余位置值

p2=[1 0 1 1 0 0 1 1 1 0 1 0 1 0 1 1];

如果将该代码推广到CCD_ 11主矩阵,将更有帮助。我已将图案和程序作为图片附上。

有人能帮我吗?【程序】1【图案】2

我想这就是你想要的。它给出的答案与你至少得到的答案相同。它应该适用于任何大小的矩阵A。它假设模式总是3x3,但这很容易推广。

A = [1 0 1 0 1 0;0 1 1 0 1 1;1 1 0 1 1 0;0 0 1 0 0 1;0 1 1 0 1 1;0 1 0 1 1 1];
pattern = logical([1 1 0;0 1 0;0 1 1]);
% Split A into 3x3 sub matrices
subs = mat2cell(A, [3,3], [3,3])';
s = size(subs);
p1=[];
p2=[];
for i = 1 : s(1)*s(2)
sub = subs{i};
p1 = [p1 sub'(pattern')'];
p2 = [p2 sub'(~pattern')'];
end 
p1
p2

相关内容

  • 没有找到相关文章

最新更新