我有一个名为sectorCoor的矩阵,其中包含18个lat长坐标的列表。这18个坐标依赖于另一个变量,它可以将矩阵的大小从最小值6改变到最大值36.矩阵将始终是6的倍数。因此,根据扇区的大小我想要矩阵将现有矩阵划分为大小为6的元素,然后从那里我想将变量siteCoor添加到sectorCoor矩阵的最开头,再次在前6个元素之后,添加siteCoor并取下6个,依此类推,直到所有6的倍数都已完成。
非常感谢您的建议。
siteCoor,
first 6 lon lat coordinates
siteCoor
siteCoor
Next 6 lon lat coordinates
siteCoor
siteCoor
Next 6 lon lat coordinates
siteCoor
> siteCoor
[,1] [,2]
[1,] 152.7075 -27.7027
> sectorCoor
lon lat
[1,] 152.7075 -27.70270
[2,] 152.6983 -27.68203
[3,] 152.7028 -27.68085
[4,] 152.7075 -27.68046
[5,] 152.7122 -27.68085
[6,] 152.7167 -27.68203
[7,] 152.7209 -27.68394
[8,] 152.7322 -27.70592
[9,] 152.7311 -27.71000
[10,] 152.7291 -27.71382
[11,] 152.7264 -27.71724
[12,] 152.7230 -27.72015
[13,] 152.7190 -27.72243
[14,] 152.6920 -27.72015
[15,] 152.6886 -27.71724
[16,] 152.6858 -27.71382
[17,] 152.6839 -27.71000
[18,] 152.6828 -27.70592
[19,] 152.6825 -27.70173
答案 0 :(得分:1)
我会预先分配正确大小的矩阵,并单独填充siteCoor
和sectorCoor
行。我们可以使用传递给matrix()
的初始数据向量来填充siteCoor
行,然后使用索引分配来填充sectorCoor
行。
res <- matrix(siteCoor,nrow(sectorCoor)+nrow(sectorCoor)%/%6L*2L,2L,byrow=T);
res[c(F,rep(T,6L),F),] <- sectorCoor;
res;
## [,1] [,2]
## [1,] -1 -2
## [2,] 1 19
## [3,] 2 20
## [4,] 3 21
## [5,] 4 22
## [6,] 5 23
## [7,] 6 24
## [8,] -1 -2
## [9,] -1 -2
## [10,] 7 25
## [11,] 8 26
## [12,] 9 27
## [13,] 10 28
## [14,] 11 29
## [15,] 12 30
## [16,] -1 -2
## [17,] -1 -2
## [18,] 13 31
## [19,] 14 32
## [20,] 15 33
## [21,] 16 34
## [22,] 17 35
## [23,] 18 36
## [24,] -1 -2
在上面我使用一个简短的逻辑向量来下标sectorCoor
res
行res
。 R在N <- 3L;
sectorCoor <- matrix(seq_len(N*6L*2L),ncol=2L);
siteCoor <- matrix(c(-1,-2),ncol=2L);
的整个行大小上循环使用向量,从而实现存储模式所需的周期性。
数据强>
myApp.factory('geoLocationService', function () {
return {
getMyGeolocation: function() {
return new Promise((resolve, reject) => {
var options = {
enableHighAccuracy: true,
timeout: 5000,
maximumAge: 0 };
navigator.geolocation.getCurrentPosition(
pos => resolve(pos.coords),
err => reject(err),
options
);
};
},
};
});