2013-11-27 37 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稀疏來減少內存使用量。