⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 latex.m

📁 matlab算法集 matlab算法集
💻 M
字号:
function latex (fname,s,A)
%----------------------------------------------------------------
% Usage:       latex (fname,s,A)
%
% Description: Write a matrix to a file using Latex tabular
%              display format.
%
% Inputs:      fname = file id
%              s     = string to label A
%              A     = matrix to be written
%----------------------------------------------------------------
   [m,n] = size (A);
   fid = fopen (fname,'a');
   fprintf (fid,'\n\\begin{eqnarray*}\n');
   fprintf (fid,'%s = ',s);
   if (m > 1) | (n > 1)
      fprintf (fid,'\\left[ \\begin{array}{c}\n');
   end 
   if max(max(imag(A))) < eps                       % real

      if (m > 1) & (n > 1)
         for i = 1 : m-1
            fprintf (fid,'%.4g & ',A(i,1:n-1));
            fprintf (fid,'%.4g \\\\ \n',A(i,n));
         end
         fprintf (fid,'%.4g & ',A(m,1:n-1));
         fprintf (fid,'%.4g \n\n',A(m,n));
      end

      if (m > 1) & (n == 1)
         fprintf (fid,'%.4g \\\\ \n',A(1:m-1,1));
         fprintf (fid,'%.4g \n\n',A(m,1));
      end

      if (m == 1) & (n > 1)
         fprintf (fid,'%.4g \\\\ ',A(1,1:n-1));
         fprintf (fid,'%.4g \n\n',A(1,n));
      end

      if (m == 1) & (n == 1)
         fprintf (fid,'%g \n\n',A(1,1));
      end

   else                                            % complex

      if (m > 1) & (n > 1)
         for k = 1 : m-1
            for l = 1 : n-1
               fprintf (fid,'%.4g%+.4gj & ',real(A(k,l)),imag(A(k,l)));
            end 
            fprintf (fid,'%.4g%+.4gj \\\\ \n',real(A(k,n)),imag(A(k,n)));
         end
         for l = 1 : n-1
            fprintf (fid,'%.4g%+.4gj & ',real(A(m,l)),imag(A(m,l)));
         end
         fprintf (fid,'%.4g%+.4gj \n\n',real(A(m,n)),imag(A(m,n)));
      end

      if (m > 1) & (n == 1)
         for k = 1 : m-1 
            fprintf (fid,'%.4g%+.4gj \\\\ \n',real(A(k,1)),imag(A(k,1)));
         end
         fprintf (fid,'%.4g%+.4gj \n\n',real(A(m,1)),imag(A(m,1)));
      end

      if (m == 1) & (n > 1)
         for k = 1 : n-1   
            fprintf (fid,'%.4g%+.4gj \\\\',real(A(1,k)),imag(A(1,k)));
         end
         fprintf (fid,'%.4g%+.4gj \n\n',real(A(1,n)),imag(A(1,n)));
      end

      if (m == 1) & (n == 1)
         fprintf (fid,'%.4g%+.4gj \n\n',real(A(1,1)),imag(A(1,1)));
      end
   end
   if (m > 1) | (n > 1)
      fprintf (fid,'\\end{array} \\right]\n');
   end
   fprintf (fid,'\\end{eqnarray*}');
   fclose (fid);
%----------------------------------------------------------------

⌨️ 快捷键说明

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