2017-12-21 14 views
2

2D MATLABの2つの点を結ぶ関数は、点を結ぶ要素の1D arrayを返します。したがって、arr=[1 2 3 4 5;6 7 8 9 10;11 12 13 14 15;16 17 18 19 20;21 22 23 24 25 ]2D MATLAB配列の2点間の1Dスライスを取る

arr(4,2)arr(1,5)間点は[17 13 9 5として返される

]。

たとえば、必要に応じてポイントを補間しても問題ありません。

それは、これは私は、Python

でそれを行う方法
length = int(np.hypot(x1-x0, y1-y0)) 
xx, yy = np.linspace(x0, x1, length), np.linspace(y0, y1, length) 
zi = arr[xx.astype(np.int), yy.astype(np.int)] 

答えて

3

であることができます場合は、interp2を使用することができます。

我々は(1.3, 2.4)から(4.6, 3.5)

に20個の均等にスペースポイントをサンプリングしたいと言うことができます
arr=[ 1 2 3 4 5; 
     6 7 8 9 10; 
    11 12 13 14 15; 
    16 17 18 19 20; 
    21 22 23 24 25 ] 

[x, y] = meshgrid(1:5,1:5) 
xx = linspace (1.3, 4.6, 20) 
yy = linspace (2.4, 3.5, 20) 
interp2(x,y,arr, xx,yy) 

は、

8.30000000000000 
8.76315789473684 
9.22631578947368 
9.68947368421053 
10.15263157894737 
10.61578947368421 
11.07894736842105 
11.54210526315790 
12.00526315789474 
12.46842105263158 
12.93157894736842 
13.39473684210526 
13.85789473684211 
14.32105263157895 
14.78421052631579 
15.24736842105263 
15.71052631578947 
16.17368421052632 
16.63684210526316 
17.10000000000000 

あなたはラインがあなたのメッシュを、以下の方法を見ることができます。

mesh(x,y,arr) 
hold on 
plot3(xx,yy,interp2(x,y,arr, xx,yy)) 

enter image description here

関連する問題