How do I read only numerical data and ignore other text from input file?

3 visualizaciones (últimos 30 días)
Input file looks like this. Is there a way to ignore the specifiers? Is there a way the program allocates variables as given in the file?
0, 1 !t0, y0
1 !tf
0.1 !h
1 !Euler Forward
  2 comentarios
Jan
Jan el 3 de Nov. de 2017
It would be helpful, if you explain what you expect as output.
Siddharth Sharma
Siddharth Sharma el 11 de Nov. de 2017
Hi, these numbers are to be allotted to the variables next to the exclamation sign. This is just the input, I don't think the output matters but anyway, my code is supposed to numerically solve ODEs so the program will use Runge-Kutta 4th order algorithm(written in the code).

Iniciar sesión para comentar.

Respuestas (1)

Akira Agata
Akira Agata el 12 de Nov. de 2017
Is this what you would like to do?
% After textscan
C = {'0, 1 !t0, y0';...
'1 !tf';...
'0.1 !h';...
'1 !Euler Forward'};
% Extract numbers and store them in variables for each line
tmp = regexp(C{1},'[+-]?(\d+\.?\d*|\.\d+)','match');
t0 = str2double(tmp{1});
y0 = str2double(tmp{2});
tmp = regexp(C{2},'[+-]?(\d+\.?\d*|\.\d+)','match');
tf = str2double(tmp{1});
tmp = regexp(C{3},'[+-]?(\d+\.?\d*|\.\d+)','match');
h = str2double(tmp{1});
tmp = regexp(C{4},'[+-]?(\d+\.?\d*|\.\d+)','match');
EulerForward = str2double(tmp{1});
  1 comentario
Walter Roberson
Walter Roberson el 12 de Nov. de 2017
I think the idea was to parse the strings to automatically figure out the variable names.

Iniciar sesión para comentar.

Categorías

Más información sobre Language Support en Help Center y File Exchange.

Etiquetas

Productos

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by