0
以下代碼運行速度非常慢,輸入是兩個矩陣大小爲256x256x3。任何人都可以請告訴我如何提高對在同一Matlab相關更快代碼示例
[row col byt]=size(img_encryp);
decryp_value=zeros(row,col,3);
img_encryp = cast(img_encryp,'int32');
ca1=cast(ca1,'int32');
for i=1:row
for j=1:col
for z=1:3
% Encryption
c=de2bi(img_encryp(i,j,z),16);
d=de2bi(ca1(i,j,z),16);
for k=1:incr:8
c1=bi2de(c(k:k+incr-1));
c2=bi2de(d(k:k+incr-1));
result=mod((c1-c2),2.^incr);
temp_bin(k:k+incr-1)=de2bi(result,incr);
end
decryp_value(i,j,z)=bi2de(temp_bin);
end
end
如果這與您之前的問題相同:http://stackoverflow.com/questions/29997900/matlab-related-faster-code,您應該編輯該問題以包含您的代碼而不是打開一個新代碼。 – beaker
這看起來好像可以通過明智地使用['bitand'和'bitor']來更高效地實現數量級(http://uk.mathworks.com/help/matlab/bit-wise-operations.html)直接在帶有合適位掩碼的整數上,但沒有任何循環內代碼的意圖做什麼_explanation,很難弄清楚,特別是在不知道'incr'的允許值等缺失細節的情況下。 – Notlikethat