Create numerical table from text file
    5 visualizaciones (últimos 30 días)
  
       Mostrar comentarios más antiguos
    
    Marisabel Gonzalez
 el 17 de Dic. de 2018
  
    
    
    
    
    Comentada: TADA
      
 el 17 de Dic. de 2018
            Here I attached one file from which I want to extract some values and place them on a table. Example, let's say I want the Elsasser Number, the Power and the Lorentz number. How would I look for those paricular keywords and extract the values and place them on a table with headlines?
I have several files similar to this one so it would be really painful to manually set up the table. Therefore I would need a loop...
0 comentarios
Respuesta aceptada
  TADA
      
 el 17 de Dic. de 2018
        text = fileread('example.txt');
% extract data
match = regexpi(text, '(?<key>(Elsasser\s*Number)|(Lorentz\s*Number)|(Power\s*(\([^\)]+\))?))\s*=\s*(?<val>(\s*\d+(\.\d+)?)+)', 'names')
match = 
  1×3 struct array with fields:
    key
    val
% display struct content to command window
struct2table(match, 'AsArray', true)
ans =
  3×2 table
             key                         val            
    ______________________    __________________________
    'Elsasser Number'         '0.309188        0.309188'
    'Lorentz  Number'         '0.001758'                
    'Power (eq 21 of C&A)'    '20299.521762'            
I used a regular expression to extract the data into a struct array containing a key-value pair
It's worth mentioning that this regexp works for the supplied file, but may break for other examples
regular expressions are very useful for such tasks, and to better understand, I suggest you search in google for a regular expression builder. most of them are good enough. some have very good teaching modules which help you learn how to write expressions
2 comentarios
Más respuestas (0)
Ver también
Categorías
				Más información sobre String Parsing en Help Center y File Exchange.
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!

