2013-11-27 97 views
-1

我有一个列向量,例如,从matlab中的其他元素中减去每个元素的元素?

在每一行中,我想减去它上面的数目一样,

row1:null

ROW2:0 - 1 = -1

ROW3:3 - 0 = 3和3 - 1 = 2 ..等,以便获得这样的事情

-1

-1 2 1

有人能指导我到一个有效的MATLAB代码,而无需使用一个for循环,为行的在我的原始数据的号码太长。

在此先感谢。

回答

3

你可以做线沿线的东西:

V = [1;0;3;2]; 
tril(bsxfun(@minus,V,V'),-1); 

这使我有以下几点:

ans = 

0  0  0  0 
-1  0  0  0 
2  3  0  0 
1  2 -1  0 

这样做的主要缺点是,它会使用大量的内存,如果V是很长时间(但无论如何,我认为这将会成为一个问题)。您可以通过使V稀疏来减少内存使用量。