У меня есть набор данных в refxy
размере 500 x 3
, где каждая строка представляет одно место таким образом, что первые, 2-й и 3-й столбцы x
координат, y
координаты и weight v1
от местоположения. Используя следующий код, я разделяю эту область на сетку 14 x 18
, и я нахожу, сколько точек в каждой сетке дает на выходе blockNums_v1
.Определение элементов в каждой сетке с помощью MATLAB
function gridcounttest
load refxy
x = refxy(:,1);
y = refxy(:,2);
v1 = refxy(:,3);
nBinsX = 14 ;
nBinsY = 18 ;
xg = linspace(0, 700, nBinsX+1) ;
yg = linspace(0, 900, nBinsY+1) ;
nCells = nBinsX * nBinsY ;
xId = sum(bsxfun(@ge, x, xg(1:end-1)), 2) ;
yId = sum(bsxfun(@ge, y, yg(1:end-1)), 2) ;
cellId = nBinsY * (xId - 1) + yId ;
blockNums_v1 = accumarray(cellId, 1, [nCells, 1])
blockSum_v1 = accumarray(cellId, v1, [nCells, 1])
blockMean_v2 = accumarray(cellId, v1, [nCells, 1], @mean)
Может кто-нибудь, пожалуйста, помогите мне определить, какие точки, возможно, номера строк, включены в каждую сетку? например, если номер сетки 10 имеет 3 точки, которые находятся в строках 23, 51 и 432. Этот код дает выходные 3, но НЕ 23, 51, 432, которые мне нужно получить сейчас :)
Спасибо !!!
Что такое 'ge' и каковы данные' refxy'? – rst
@RobertStettler 'ge'is больше или равно. http://de.mathworks.com/help/matlab/ref/ge.html – JaBe