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

3 visualizzazioni (ultimi 30 giorni)
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 Commenti
Jan
Jan il 3 Nov 2017
It would be helpful, if you explain what you expect as output.
Siddharth Sharma
Siddharth Sharma il 11 Nov 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).

Accedi per commentare.

Risposte (1)

Akira Agata
Akira Agata il 12 Nov 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});

Categorie

Scopri di più su Language Support in Help Center e File Exchange

Prodotti

Community Treasure Hunt

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

Start Hunting!

Translated by