2016-03-07 110 views
1

我已設置的數組:減法通過跟蹤xy座標

x1=[1 2 3 4 5 6 7 8 9]; 
y1=[1 2 3 4 5 6 7 8 9]; 
z1=[2 2 2 2 2 9 6 2 2]; 

x2=[6 7]; 
y2=[6 7]; 
z2=[2 2]; 

通過跟蹤xy座標,與z陣列必須被減去,以便輸出將是

x=[1 2 3 4 5 6 7 8 9]; 
y=[1 2 3 4 5 6 7 8 9]; 
z=[2 2 2 2 2 7 4 2 2]; 
+0

什麼?我不知道這些數字如何給出你想要的結果。你可以解釋嗎?你爲什麼需要'x2'和'y2'?只要用'x2'就可以知道'z'上的哪個位置可以減去'z2'。也許我只是不明白..... –

+0

x1和y1代表一個點,z1代表某個值,類似地,x2和y2定義了一個點,z2定義了一些值。現在我需要匹配兩個點中的點,如果它們匹配,那麼將匹配的座標減去z。在我的情況下,6,7個座標是匹配的,所以需要通過減去z1-z2來修改相應的z值。 –

+0

uhhhh,我也不明白,所以從一個抽象的推論點上,你指定了x2 = y2 = [6 7];因此你可以用z2(這是[2 2])減去z中的第6和第7個元素?那麼當x2!= y2時會發生什麼?另外,x1和y1有什麼意義? – GameOfThrows

回答

3

您可以使用在z中獲得元素的標記210功能:

a1=[x1.',y1.']; 
a2=[x2.',y2.']; 
[~,ix]=ismember(a2,a1,'rows') 
z1(ix)=z1(ix)-z2 

要使用ismember兩個矩陣a1a2創建女巫包含以行的座標。然後ismember'rows'選項用於獲取索引。

當一個點存在於x1/y1中不存在的x2/y2中時,上面的代碼將失敗。

+0

好。我們對這個問題有相同的理解。 – GameOfThrows

+0

謝謝!這正是我所期待的。非常感謝!! –