I would to save the values for post processing from file output, can you help me?
    5 Ansichten (letzte 30 Tage)
  
       Ältere Kommentare anzeigen
    
    mattvanviore
 am 4 Mai 2019
  
    
    
    
    
    Bearbeitet: per isakson
      
      
 am 23 Mai 2019
            I have a file .txt which i would to obtain the values for post processing. For this in Matlab i am using:
outputfile=fopen(postproces.dat,'r');
But the file have this line:
fan=  30.000       bes =  2.3700       doe =  15.490    
and i would to catch 2.3700 and save it into a variabile bes in Matlab. Thanks.
0 Kommentare
Akzeptierte Antwort
  per isakson
      
      
 am 5 Mai 2019
        
      Bearbeitet: per isakson
      
      
 am 7 Mai 2019
  
      Try this
>> num = cssm('h:\m\cssm\postprocessing.txt')
num =
         3.15
where the file, cssm.m,  contains the following code
function    num = cssm( ffs )
    str = fileread( ffs );
    xpr = '(?<=Cref\s*=\s*)[0-9.]+';
    cac = regexp( str, xpr, 'match', 'once' );
    num = str2double( cac );
end
2017-05-07: There is an issue with this regular expression, '(?<=Cref\s*=\s*)[0-9.]+'.  It  matches the value following any word that ends with the string, Cref, e.g. xyzCref. Thus, add the beginning of word anchor, \<,  so that the expression reads  '(?<=\<Cref\s*=\s*)[0-9.]+'.
Version 2.0
>> num = cssm('h:\m\cssm\postprocessing.txt',{'Sref','Cref','Bref'})
num =
           30         3.15        10.95       
where
function    num = cssm( ffs, names )    
    narginchk(1,2)
    if nargin == 1
        names = {'Cref'};
    else
        if isa( names, 'char' )
            names = {names};
        elseif not( iscellstr( names ) )
            error('The second input argument, "%s", has wrong type') 
        end
    end
    str = fileread( ffs );
    len = length( names );
    num = nan( size( names ) );
    for jj = 1 : len
        xpr = ['(?<=\<', names{jj}, '\s*=\s*)[0-9.]+'];
        cac = regexp( str, xpr, 'match', 'once' );
        num(jj) = str2double( cac );
    end
end
2 Kommentare
  per isakson
      
      
 am 22 Mai 2019
				
      Bearbeitet: per isakson
      
      
 am 23 Mai 2019
  
			What's "value is negative" and what's "appears NaN" ?
Weitere Antworten (1)
  Image Analyst
      
      
 am 4 Mai 2019
        You can probably use csvread(), dlmread(), readtable(), importdata(), textscan(), or fgetl().  (Just one of those functions of course!)
If none of those work, attach 'postproces.dat' so we can figure it out for you.
4 Kommentare
  per isakson
      
      
 am 5 Mai 2019
				
      Bearbeitet: per isakson
      
      
 am 5 Mai 2019
  
			Your file, postprocessing.txt, looks like this
---------------------------------------------------------------
 Vortex Lattice Output -- Total Forces
 Configuration: ALA ANALISI lambda0.2-massa 2000kg-AR 4                     
     # Surfaces =   2
     # Strips   =  40
     # Vortices = 240
  Sref =  30.000       Cref =  3.1500       Bref =  10.950    
  Xref =  0.0000       Yref =  0.0000       Zref =  0.0000    
  CDvis =   0.00000     CDind = 0.1076431
Do the files always have 12 lines and this format?
What about the line,  fan=  30.000   bes =  2.3700   doe =  15.490  , of your question?
Do you want to capture only the value of Cref ? 
Siehe auch
Kategorien
				Mehr zu Variables finden Sie in Help Center und File Exchange
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!



