행렬 집합의 고유 값을 포함하는 셀 배열이 있습니다. 이 배열의 각 셀에서 첫 번째 값을 제거하고 행렬에 배치했습니다. 그런 다음이 값은 워터 마크 이미지를 기반으로 한 임계 값 집합을 통해 조작됩니다. 그런 다음 값의 행렬을 셀 배열로 재 변환했습니다. 이제는 이러한 새 셀의 값을 이전 배열의 해당 셀의 첫 번째 위치에 배치하려고합니다. 이 작업을 수행하는 방법에 대한 아이디어가 있습니까? 규칙을 기반으로 검색하고 바꾸는 데 사용되는 방법을 많이 보았지만 단순히 일대일 대체를 수행하는 방법은 없습니다. 나는 그것이 가능하기를 바랄뿐입니다.셀 배열의 각 셀의 첫 번째 값을 다른 셀 배열의 값으로 바꿉니다. MATLAB
기능 코드는 다음과 같습니다
function D = fun(D,W)
Q = 5;
[i,j] = size(D)
F = cellfun(@(c) c(1), D); % grab the first value from each cell
disp(F); % Debug check
for a = 1:i % Process the values
for b = 1:j
Z = mod(F(a,b),Q);
if W(a,b) == 0
if Z<(3*Q)/4;
F(a,b) = F(a,b)+Q/4-Z;
else
F(a,b) = F(a,b)+5*Q/4-Z;
end
else
if Z<Q/4;
F(a,b) = F(a,b)-Q/4+Z;
else
F(a,b) = F(a,b)+3*Q/4-Z;
end
end
end
end
disp(F); % Debug check
F = num2cell(F); % Make the new cell array
disp(F); % Debug Check
D{1,1} = cellfun(@(F) F{1,1}, F); % No clue what to do here
end