![](/img/trans.png)
[英]Given a 2D numeric "height map" matrix in R, how can I find all local maxima?
[英]R: Find the values of a 2D function (given by a matrix) along an arbitrary line
我有一個描述2D表面的矩陣,我需要能夠為任意線沿該表面計算值。
最好用一個例子來解釋
#x and y axes
x=c(1:100)
y=c(1:100)
# 2D Matrix function defined as 0 except for a middle box filled with 1
M=matrix(0,nrow=100,ncol=100)
M[40:60,40:60]=1
# define two points
x1=50
y1=50
x2=23
y2=80
# plot contour graph of M, add points (x1,y1) and (x2,y2)
# and a line connecting the two
contour(x,y,M)
points(x1,y1,col=2)
points(x2,y2,col=3)
lines(c(x1,x2),c(y1,y2),lty=2)
我想要做的是沿(x1,y1)到(x2,y2)的線獲取M的值,例如在值(xvec,yvec)處,其中xvec = seq(x1,x2,length.out = N),對於yvec同樣如此。
在R中有簡單的方法可以做到這一點嗎?
真誠的
使用“ [”函數的功能實際上可以很容易地接受兩列矩陣(這里假設N <- 20
):
M[ cbind(xvec,yvec) ]
[1] 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0
因為索引被截斷,所以當參數不是整數時,值不必是最接近點的值。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.