2014-10-31 84 views
0

即使此问题无效,也不确定。但更好的问。复制并从矩阵中删除

假设我们在MATLAB中有两个大小为(n,1)和(m,1)的矩阵,我们希望在某个条件下将某些行从矩阵A复制到矩阵B.

例如如果值A(I,1)是X

小于或等于后来删除源那些行矩阵即矩阵A

实施例:

A = [1,2,3,4, 5,6]

B = [8,9]

拷贝所有这些都小于或等于4从A到B的值,从A 矩阵删除变得

A = [5,6]

B = [8,9,1,2,3,4]

回答

2

可以使用一个逻辑矩阵以识别项目:

mask = (A <= 4); 
B = [B A(mask)]; 
A(mask) = []; 
+0

宾果,像魅力一样工作。快速和漂亮的做法。老实说,我不知道使用面具。 – Indigo 2014-10-31 23:45:39

+1

@Indigo:'mask'是一个变量名,它只是存储矩阵比较创建的逻辑矩阵。 – 2014-11-01 00:07:47

+0

是的确是真的,逻辑矩阵。错误的词语选择。谢谢 :-) – Indigo 2014-11-01 00:11:02