1
行列の固有値を含むセル配列があります。私はこの配列内の各セルから最初の値を削除し、行列に配置しました。これらの値は、次いで、透かし画像に基づく閾値のセットを介して操作される。私は値の行列をセル配列に再変換しました。私は今、これらの新しいセルの値を、古い配列のセルの対応する最初の位置に配置したいと思います。これを行う方法に関するアイデア?ルールに基づいて検索や置換を行う方法はかなりありますが、単に1対1の置換だけを行うものはありません。私はそれが可能であることを望んでいるだけです。セル配列の各セルの最初の値を別のセル配列の値に置き換えます。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