2012-07-28 20 views
1

我有一些矩阵这里:如何考虑他人识别值字模

A = [ 1 2 3 4 0 0 0; 
     0 0 1 2 3 4 0] 
B = [ 0 1 2 3 4 0 0; 
     0 0 0 1 2 3 4] 
C = [ 1 2 3 4 0 0 0; 
     0 1 2 3 4 0 0] 

,我致电上述矩阵作为“初始矩阵”。然后我有“矩阵d”在这里:

D = [ 1 2 3 4 0 0 0; 
     1 2 3 4 0 0 0] 

其中I必须确定有多少是值“1”在矩阵d的每一行这是不符合值“> 3”相同的列中的每一行中,在矩阵A,B,C在这里重新排列,如下例所示。

1 2 3 4 0 0 0 
0 0 1 2 3 4 0 
    0 1 2 3 4 0 0 
    0 0 0 1 2 3 4 
     1 2 3 4 0 0 0 
     0 1 2 3 4 0 0 

      1 2 3 4 0 0 0 
      1 2 3 4 0 0 0 

,我希望我的回答是0,因为在基质d第一和第二行的值1是具有与值1相同的列中的某些值具有值的一个相同的列> 3(4) 。

什么是代码来作出这样的家伙的答案?请帮助我,谢谢。

+0

@EitanT:你是什么意思,先生? – 2012-07-28 15:23:03

+0

@EitanT:我已经接受了我最后一个问题的答案先生,那么请帮我解决这个问题先生。 – 2012-07-28 18:14:14

+0

@EitanT:ouh我忘了接受你的答案,非常感谢你的回答先生以前。 :) – 2012-07-29 04:19:39

回答

0

让我从一个简单的解决方案开始。请确认这是否是预期的行为:

首先,我们安排了矩阵A,B,C,d,你已经证明:

A = [ 1 2 3 4 0 0 0; 
     0 0 1 2 3 4 0]; 
B = [ 0 1 2 3 4 0 0; 
     0 0 0 1 2 3 4]; 
C = [ 1 2 3 4 0 0 0; 
     0 1 2 3 4 0 0]; 
D = [ 1 2 3 4 0 0 0; 
     1 2 3 4 0 0 0]; 

X = zeros(8,13); 
X(1:2,1:7) = A; 
X(3:4,3:9) = B; 
X(5:6,5:11) = C; 
X(7:8,7:13) = D; 

这给了我们:

X = 
    1  2  3  4  0  0  0  0  0  0  0  0  0 
    0  0  1  2  3  4  0  0  0  0  0  0  0 
    0  0  0  1  2  3  4  0  0  0  0  0  0 
    0  0  0  0  0  1  2  3  4  0  0  0  0 
    0  0  0  0  1  2  3  4  0  0  0  0  0 
    0  0  0  0  0  1  2  3  4  0  0  0  0 
    0  0  0  0  0  0  1  2  3  4  0  0  0 
    0  0  0  0  0  0  1  2  3  4  0  0  0 

现在我们可以重新使用的答案从previous question做计数:

numPerRow = sum(X(7:8,all(X(1:6,:)<4))==1,2) 
num = sum(numPerRow) 

矩阵的两行D给零,因此总和也为零:

numPerRow = 
    0 
    0 

num = 
    0