Matlab Array Issues - PullRequest
       3

Matlab Array Issues

1 голос
/ 18 апреля 2020

У меня есть числовой массив CentroidBins, который равен 3694x4. Столбцы 3 и 4 являются произвольными ячейками X и Y с диапазоном 1-20. Моя цель в последнем бите кода состояла в том, чтобы go через столбцы 3 и 4 подсчитать, сколько раз появлялась конкретная пара (ie. 1,1 или 1,2 .... et c) и поместите это в массив 20x20 со строками, являющимися Y мусорными ведрами, и столбцами, являющимися X мусорными ведрами. Мне удалось создать что-то, что выглядит как то, что нужно, но вывод 18x17, я предполагаю, что это удаляет строки и столбцы, заполненные "0". Как я могу убедиться, что это производит 20x20?

bin20 = centroids_array / 20 %create 20 bins
imRound = round(bin20)
CentroidBins = [centroids_array , imRound]
save("CentroidBins.mat", "CentroidBins");
disp(CentroidBins)

nrow = size(CentroidBins, 1); 
B = CentroidBins(:,[3 4]); 
NumF = full(sparse(B(1:end-nrow),B(nrow+1:end),1))

1 Ответ

2 голосов
/ 18 апреля 2020

для подсчета появления пар вы используете hist и unique

a=[1 2; 1 2; 2 3; 8 1; 2 3];
[foo,ix,jx]=unique(a,'rows');
count=hist(jx,unique(jx)) % report the repeated counts of each unique pair
foo                       % lists the unique pairs
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...