2013-02-11 42 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))'