我遇到以下問題。我有兩個矩陣,一個是大小爲X的Y矩陣,Y是從DEM文件中獲取的一組地形高度,另一個是矩陣X,Y,Z的Z矩陣,每個矩陣的高度值從0到5000米(X,Y )點。Matlab - 在3d矩陣中查找2d矩陣值
我想比較每個(X,Y)點的DEM高度與Z高度值的列並取最接近的值。例如:
dem(1,1) = 1850 %actual height of the terrain at point (1,1)
heights(1,1,:) = 0, 1000, 2000, 3000, 4000, 5000 %column of heights at point (1,1)
如果我使用的功能「找到」我得到以下錯誤:
find(heights > dem, 1)
Error using >
Number of array dimensions must match for binary array op.
有沒有解決這個不需要兩個for循環?
非常感謝您的幫助!
如果'X'和'Y'保持不變,是不是這個問題會減少到betwenn'Z上的比較數組?原因我期望每個點的座標在** 2d **和** 3d **表示之間不變。我對嗎? – fpe 2013-04-04 10:39:46
是的,對於每個點,它是一個長度爲Z的向量和一個值之間的比較。這可以通過'find(height(x,y,:)> dem(x,y))'來完成。不過,我希望同時爲整個矩陣提供解決方案,而無需循環X和Y座標。 – 2013-04-04 10:49:14