我有一個單元陣列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