cai0.m

来自「详细介绍了Mathlab的使用方法与技巧」· M 代码 · 共 100 行

M
100
字号
% dbnum=[0 0 1 2 3 4];dbden=[0 1 1 0 1 0];
ddnumn=length(dbnum);dddenn=length(dbden);ddnumn1=ddnumn;dddenn1=dddenn;
dbnumk=dbnum;dbdenk=dbden;
        if dbnum(1)==0
            for i=1:ddnumn
               if dbnum(i)==0
                  for j=1:ddnumn1-1
                     dbnumk(j)=dbnum(j+1);
                     dbnumkk(j)=dbnumk(j+1);
                  end
                  ddnumn1=ddnumn1-1
               else
                  clear dbnum
               for i=1:ddnumn1
                  dbnum(i)=dbnumkk(i);
               end
               dbnum
               break
               end
            end
         end
         if dbden==0
            for i=1:dddenn
               if dbden(i)==0
                  for j=i:dddenn1-1
                     dbdenk(j)=dbden(j+1);dbdenkk(j)=dbdenk(j+1);
                  end
                  dddenn1=dddenn1-1;
               else
                  clear dbden
                  for i=1:dddenn1
                     dbden(i)=dbdenkk(i);
                  end
                  dbden
                  break
               end
            end
         end       
         dbnumgen=roots(dbnum);dbdengen=roots(dbden);
         ddnumn=length(dbnumgen);dddenn=length(dbdengen);ddnumn1=ddnumn;dddenn1=dddenn;
         dbnumk=dbnum;dbdenk=dbden;numdenn=0;
         clear dbdengeni
         clear dbnumgenj
         dbdengen1=roots(dbden);dbnumgen1=roots(dbnum);
         for i=1:dddenn
            for j=1:ddnumn
               if abs(dbdengen(i)-dbnumgen(j))<0.0001
                  numdenn=numdenn+1
                  dbdengeni(numdenn)=dbdengen(i);
                  if i~=dddenn
                     if j==1&dddenn==1
                        dbdengen1=1;                                     %常数 
                     else 
                        if j==1
                           dbdengen1=dbdengen(2:dddenn);
                        else
                           clear dbdengen1
                           dbdengen1(1:i-1)=dbdengen(1:i-1);
                           dbdengen1(i:dddenn-1)=dbdengen(i+1:dddenn)
                        end
                     end

   %                  dbdengen1=dbdengen(1,i+1:dddenn)
                  else
                     dbdengen1=dbdengen(1:dddenn-1);
                  end 
                  dbnumgenj(numdenn)=dbnumgen(j);
                  if j~=ddnumn
                     if j==1&ddnumn==1
                        dbnumgen1=1;                                     %常数 
                     else 
                        if j==1
                           dbnumgen1=dbnumgen(2:ddnumn);
                        else
                           clear dbnumgen1
                           dbnumgen1(1:j-1)=dbnumgen(1:j-1);
                           dbnumgen1(j:ddnumn-1)=dbnumgen(j+1:ddnumn);
                        end
                     end
                     
                  else
                     dbnumgen1=dbnumgen(1:ddnumn-1)
                  end

               end
            end
         end
         if ddnumn-numdenn==0
            dbnum=dbnum(1);
         else
            dbnum=dbnum(1)*poly(dbnumgen1);
         end
         if dddenn-numdenn==0
            dbden=dbden(1);
         else
            dbden=dbden(1)*poly(dbdengen1);
         end
         
            

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?