matlab在相同的输入上给出不同的结果

时间:2016-04-22 13:53:05

标签: matlab image-processing

我实现了离散Rajan变换及其逆。但是当我尝试在不同的脚本中使用这些函数时,我得到了不同的结果。我已经分配了一个名为" array"的行矩阵。有8个元素。当我将这个数组传递给函数" drt"它给出了不同的结果,当我对这8个元素进行硬连接时,结果是不同的。

array =

  123  118  114  112  108  105  105   90

drt(array)

ans =

  Columns 1 through 26

  255    0   33    0   59    0    6    6    0    0    0    0    1    1    1    1    0    0    1    1    0    0    1    0    0    0

  Columns 27 through 32

    0    0    0    0    0    1

drt([123,118,114,112,108,105,105,90])

ans =

  Columns 1 through 22

   875    25    33     9    59    11    15     3     0     0     0     0     1     1     1     1     0     0     1     1     0     0

  Columns 23 through 32

drt()的代码:

       function [y]=drt(x)
       N=8;
       for i=1:4
       y1(i)=x(i)+x(i+4);
       y1(i+4)=abs(x(i)-x(i+4));
       e1(i)=0;
       e1(i+4)=x(i)>x(i+4);
       end
       for i=1:2
         y2(i)=y1(i)+y1(i+(N/4));
         y2(i+2)=abs(y1(i)-y1(i+N/4));
         e2(i)=0;
         e2(i+2)=y1(i)>y1(i+2);

         end
       for i=5:6
          y2(i)=y1(i)+y1(i+(N/4));
          y2(i+N/4)=abs(y1(i)-y1(i+N/4));
          e2(i)=0;
          e2(i+2)=y1(i)>y1(i+2);

         end
       for i=1:2:7
          y3(i)=y2(i)+y2(i+1);
          y3(i+1)=abs(y2(i)-y2(i+1));
          e3(i)=0;
          e3(i+1)=y2(i)>y2(i+1); 
        end

       y=[y3 e1 e2 e3];

0 个答案:

没有答案