wreadinf.m
上传用户:haiyisale
上传日期:2013-01-09
资源大小:3246k
文件大小:2k
源码类别:

波变换

开发平台:

Matlab

  1. function [out1,fid] = wreadinf(fname,noerr)
  2. %WREADINF Read ascii files.
  3. %   [TXT,FID] = WREADINF(FNAME,NOERR) or 
  4. %   [TXT,FID] = WREADINF(FNAME)
  5. %   M. Misiti, Y. Misiti, G. Oppenheim, J.M. Poggi 01-May-96.
  6. %   Last Revision: 01-May-1998.
  7. %   Copyright 1995-2002 The MathWorks, Inc.
  8. % $Revision: 1.13 $
  9. % For Japanese local, open ja/fname.m if the file exists.
  10. lang=get(0,'lang');
  11. lang=[lang,'  '];   % Guarantee lang has two chars.
  12. langdir=lang(1:2);
  13. path=fileparts(which(fname));
  14. if exist([path,filesep,langdir, filesep, fname]) == 2
  15.      fid = fopen([path, filesep,langdir, filesep, fname], 'r');
  16. else
  17.  fid = fopen(fname,'r');
  18. end
  19. if fid==-1
  20.     if nargin==2 , out1 = ''; return; end
  21.     errargt(mfilename,'File Error ...','msg');
  22.     error('*');     
  23. end
  24. info = fread(fid);
  25. fclose(fid);
  26. info = (abs(info))';
  27. % tabulation
  28. j = find(info==9);
  29. info(j) = 32*ones(size(j));
  30. out1  = [];
  31. if length(info)>0
  32.     ind1  = find(info==10);
  33.     ind2  = find(info==13);
  34.     lind1 = length(ind1);
  35.     lind2 = length(ind2);
  36.     if lind1>0
  37.         i_beg = [1,ind1(1:lind1-1)+1];
  38.         if length(ind2)>0
  39.             i_end = ind1-2;
  40.         else
  41.             i_end = ind1-1;
  42.         end
  43.         cols  = i_end-i_beg+1;
  44.         nbcol = max(cols);
  45.         out1  = 32*ones(lind1,nbcol);
  46.         for k = 1:lind1
  47.             out1(k,1:cols(k)) = info(i_beg(k):i_end(k));
  48.         end
  49.     elseif lind2>0
  50.         i_beg = [1,ind2(1:lind2-1)+1];
  51.         i_end = ind2-1;
  52.         cols  = i_end-i_beg+1;
  53.         nbcol = max(cols);
  54.         out1  = 32*ones(lind2,nbcol);
  55.         for k = 1:lind2
  56.             out1(k,1:cols(k)) = info(i_beg(k):i_end(k));
  57.         end
  58.     else
  59.         out1 = info;
  60.     end
  61. end
  62. out1  = setstr(out1);
  63. [r,c] = size(out1);
  64. ibeg  = min(find(out1(:,1)=='%'));
  65. if isempty(ibeg) , out1 = []; return; end   
  66. if ibeg==r
  67.     iend = r; 
  68. else
  69.     j = find(out1(:,1)~='%');
  70.     k = find(j>ibeg);
  71.     if isempty(k)
  72.         iend = r;
  73.     else
  74.         iend = min(j(k))-1; 
  75.     end
  76. end
  77. out1 = out1(ibeg:iend,2:end);