2016-11-14 51 views
0

我正在編寫無環幾何圖像變換的代碼,使用meshgrid進行雙線性插值。我試圖達到的是這樣的最後一步:如何使用2D矩陣行作爲索引和函數參數?

image(column1 of A , column2 of A)=func (rows of nx3 matrix B as arg); 

假設A = [1 2; 3 4; 5 6]和B = [1 1 1; 2 3 1; 4 5 1]因此應該發生:

image (1,2)=func ([1 1 1]); 
image (3,4)=func ([2 3 1]); 
image (5,6)=func ([4 5 1]); 

沒有使用任何循環。建議將不勝感激。

+2

你爲什麼不改變功能?像'image = func(A,B)'? – obchardon

+2

你應該重構你的代碼,使得'func'接受'image','A'和整個'B',並輸出修改後的圖像。如果你堅持在每一行分別調用'func',我就不會看到它是如何在沒有隱式(即arrayfun)或顯式循環的情況下完成的。無論如何,你應該提供一個[mcve] - 請包括一個示例'image'(輸入和輸出)。我懷疑你的'func'可以是矢量化的,但你的問題太抽象了,不能真正說明。 –

回答

0

如果該功能被矢量,簡單地說:

image(sub2ind(SizeofImage,A))=func(B);