簡體   English   中英

R:沿着任意線找到2D函數的值(由矩陣給出)

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM