如何在matlab

时间:2016-04-12 07:57:14

标签: matlab matrix

我有两个矩阵。一个是PR1单位矩阵和另一个反向单位矩阵PR2。提到的参考矩阵A可以是5x5 10x10等。根据I1,I2被创建。这里提到5x5矩阵。 逻辑运算以And = PR1 AND PR2开头,后跟Xor = PR1 XOR PR2。

A矩阵:

A =

 0     1     1     1     0     
 1     0     1     1     0     
 1     1     0     1     1     
 1     1     1     0     1    
 0     0     1     1     0   

I是单位矩阵

PR1 =

 1     0     0     0     0     
 0     1     0     0     0     
 0     0     1     0     0     
 0     0     0     1     0     
 0     0     0     0     1 

PR2 =

 0     0     0     0     1     
 0     0     0     1     0     
 0     0     1     0     0     
 0     1     0     0     0     
 1     0     0     0     0  

和=

 0     0     0     0     0
 0     0     0     0     0
 0     0     1     0     0
 0     0     0     0     0
 0     0     0     0     0   

Xor =

 1     0     0     0     1
 0     1     0     1     0
 0     0     0     0     0
 0     1     0     1     0
 1     0     0     0     1

现在扫描And和Xor矩阵中每行的左到右。将第一个1放在R1矩阵中的新行中。跟踪第二个并在上面的矩阵(1,5)中的A矩阵中的第一个1行和第二个1行之间进行NOR操作是第二个1位,所以在第1和第5行之间进行NOR操作将答案放在R1matrix中。同样,它有R1。

R1 =

 1     0     0     0     1
 0     0     0     0     0
 0     0     1     0     0
 0     1     0     0     0
 1     0     0     0     1

现在将R1替换为PR2 新 PR2 =

 1     0     0     0     1
 0     0     0     0     0
 0     0     1     0     0
 0     1     0     0     0
 1     0     0     0     1

再次重复相同的过程PR1和PR2,然后是PR1 XOR PR2

和=

 1     0     0     0     0
 0     0     0     0     0
 0     0     1     0     0
 0     0     0     0     0
 0     0     0     0     1

Xor =

 0     0     0     0     1
 0     1     0     0     0
 0     0     0     0     0
 0     1     0     1     0
 1     0     0     0     0

现在扫描And和Xor矩阵中每行的左到右。将第一个1放在R1矩阵中的新行中。跟踪第二个并在上面的矩阵(1,5)中的A矩阵中的第一个1行和第二个1行之间进行NOR操作是第二个1位所以在第1和第5行之间进行NOR操作将答案放在R2matrix中。

R2 =

 1     0     0     0     1
 0     1     0     0     0
 0     0     1     0     0
 0     0     0     1     0
 1     0     0     0     1

检查所有列是否至少有1并停止

2 个答案:

答案 0 :(得分:2)

PR1和PR2与:PR1 * PR2

相同

C = xor(A,B)

source)。

找到单位矩阵有一个内置函数。 Identity矩阵(我相信就是这样,我不知道为什么叫它"眼睛")

你应该真的谷歌的东西,如:" xor matlab矩阵"。获得这些内容确实没有多少想法。你可能会更加努力地写下你的问题。

答案 1 :(得分:1)

这很直接

PR1 = eye(size(A,1));
PR2 = flip(PR1);
AND = and(PR1,PR2);
XOR = xor(PR1,PR2);

k = find(And~=0,1,'first');
R1 = zeros(size(A,1));
R1(k) = And(k);
idx = find(Xor~=0, 1, 'first');
R1(idx) = Xor(idx);

如果你想对第1行和第5行进行NOR操作,那么你可以

R1(1,:) = !(or(A(1,:),A(5,:)))
R1(2,:) = !(or(A(2,:),A(4,:)))
R1(4,:) = !(or(A(2,:),A(4,:))) 
R1(5,:) = !(or(A(1,:),A(5,:)))

PR2 = R1

从此处根据需要重复您的流程。