我遇到以下问题。我有两个矩阵,一个是大小为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