У меня есть массив ячеек с именем grnPixels
размера (1 x 40)
, где каждая отдельная ячейка имеет векторный массив чисел M x 1
, где M
является переменной. У меня также есть один векторный массив с именем redCentroid
размера N x 1
.
Я хочу проверить, соответствуют ли значения в redCentroid
каким-либо значениям в grnPixels
. Я сделал код, но он очень медленный в этом коде Matlab. Как я могу улучшить это?
nRedCells = length(propsRed);
nGrnCells = length(propsGrn);
grnPixels = cell(1,nGrnCells);
redCentroid = zeros(nRedCells,1);
matchMemory = zeros(nRedCells,1);
for j = 1:nRedCells
for i = 1:nGrnCells
for n = 1:length(grnPixels{i})
matchment = ismember(redCentroid(j),grnPixels{i}(n));
if matchment == 1
matchMemory(j,1:2) = [j i];
end
continue
end
end
end
Образец данных
redCentroid
51756
65031
100996
118055
122055
169853
197175
233860
244415
253822
grnPixels{1}
142
143
100996
167
168
grnPixels{2}
537
538
539
540
541
542
233860
244415
545
546
547
548