MATLAB Answers

Extracting Exponential Numbers from Cell Arrays

5 views (last 30 days)
Quang Phung
Quang Phung on 3 Jun 2018
Commented: Quang Phung on 3 Jun 2018
I managed to extract data from specific lines in a .txt file, and fit them into 3 different cell arrays. My problem is, I've tried using the regexp command to extract the numbers, but I end up removing the exponential 'E' every time I try it. Here's what I have so far:
FID = fopen('Input.txt');
Cell = textscan(FID,'%s','Delimiter','\n');
fclose(FID);
DATA=Cell{1,1};
Primary_Fission_Rate = DATA(203:89:end);
Primary_Am_Rate = DATA(227:89:end);
Secondary_Am_Rate = DATA(251:89:end);
Tertiary_Am_Rate = DATA(261:89:end);
The format of the last 4 lines of code are basically the same, a 51x1 cell with the output:
FISSION RATE 6.81926E+14 FISS/SEC.
FISSION RATE 5.60842E+14 FISS/SEC.
etc.
I'd like to be able to remove the characters 'FIssion Rate' and 'Fiss/Sec' but keep the exponential.
Thanks in advance.

  1 Comment

Stephen Cobeldick
Stephen Cobeldick on 3 Jun 2018
@Quang Phung: please upload a sample file by clicking the paperclip button.

Sign in to comment.

Accepted Answer

Greg
Greg on 3 Jun 2018
Edited: Greg on 3 Jun 2018
You're already using textscan, did you try the "Remove Literal String" option so it never even makes it into MATLAB from the text file?
Otherwise, a simple var = strrep(var,'FISSION RATE',''); et al. will do the trick.
Or the new'ish extractBetween.

  1 Comment

Quang Phung
Quang Phung on 3 Jun 2018
Thank you very much, the strrep command worked just fine. Didn't realize I had to copy the space in 'FISSION RATE ' exactly.

Sign in to comment.

More Answers (0)

Sign in to answer this question.

Products


Release

R2017b