我有一个单元阵列grnPixels
,其大小为(1 x 40)
,其中每个单元格都有一个M x 1
向量数组,其中M
是可变的。我也有一个大小为N x 1
的称为redCentroid
的单个矢量数组。如何检查数组中的值是否与单元格数组中的值对应
我想检查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
嗨,它似乎告诉我,'cat(2,grnPixels {:})'中'串联的矩阵的维度是不一致的。 – Senyokbalgul
@Senyokbalgul刚做了一个小小的调整。 – Suever
它似乎仍然给我同样的错误.. – Senyokbalgul