Matlab相关的快速代码示例

Matlab相关的快速代码示例,matlab,Matlab,下面的代码运行非常慢,输入两个矩阵大小为256x256x3。任何人都可以告诉我如何改进 [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

下面的代码运行非常慢,输入两个矩阵大小为256x256x3。任何人都可以告诉我如何改进

[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

将二进制向量转换为十进制数函数(
bi2de
de2bi
)运行时间太长。在我看来,如果您使用本文提供的
b2d
d2b
功能,将极大地提高代码的性能。

如果这与您之前的问题相同:,您应该编辑该问题以包含您的代码,而不是打开一个新的代码。如果明智地使用合适的位掩码直接对整数进行运算,可能会更有效地实现该问题,但如果不解释循环中的代码的作用,则很难理解它,尤其是在不知道
incr
的允许值等缺失细节的情况下。