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

3 views (last 30 days)
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 Comments
Siddharth Sharma
Siddharth Sharma on 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).

Sign in to comment.

Answers (1)

Akira Agata
Akira Agata on 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});

Categories

Find more on Language Support in Help Center and File Exchange

Products

Community Treasure Hunt

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

Start Hunting!