2013-02-11 38 views
-1

假设一个矩阵生成剩余的值存在使用for环路,它被给定为从利用Matlab

A = [ 1 3 4 ;... 
     5 8 9 ;... 
     6 3 8 ] 

让从给定A矩阵来生成作为

B = [ 5 3 8 ] 

另一矩阵生成的矩阵我的问题是:我想通过仅从列仅明智地删除B列的元素来生成矩阵。

输出

C = [ 1 8 4 ;... 
     6 3 9 ] 

如何做到这一点用Matlab?

+0

矩阵B是随机生成的。只有一个元素从每列中移除,导致产生矩阵C.可以使用什么命令生成矩阵C – Ash 2013-02-11 05:59:12

+1

您在行和列之间有一些不一致。根据你的定义,“C”应该是3x2。请相应地修改您的问题,并且不要在评论中留下重要信息。 – Shai 2013-02-11 07:24:33

+0

@Ash ::在第二列中,3出现了两次(第1行和第3行)次....我们如何知道B中的** 3 **来自第1行,而不是第3行,并且是副verca .. C中的第二列可以是[8; 3]或[3; 8] ...请澄清..... – 2013-02-11 07:31:09

回答

1

这应该工作,假设从每一行中删除的元素数量是相同的。

A = [1 3 4; 5 8 9; 6 3 8]; 
B = [3 5 8]; 

C = A'; 
C(find(A' == repmat(B, size(A, 2), 1))) = []; 
C = reshape(C, [], size(A, 1))'