Extracting Exponential Numbers from Cell Arrays

조회 수: 3 (최근 30일)
Quang Phung
Quang Phung 2018년 6월 3일
댓글: Quang Phung 2018년 6월 3일
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
Stephen23
Stephen23 2018년 6월 3일
@Quang Phung: please upload a sample file by clicking the paperclip button.

댓글을 달려면 로그인하십시오.

채택된 답변

Greg
Greg 2018년 6월 3일
편집: Greg 2018년 6월 3일
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
Quang Phung
Quang Phung 2018년 6월 3일
Thank you very much, the strrep command worked just fine. Didn't realize I had to copy the space in 'FISSION RATE ' exactly.

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Whos에 대해 자세히 알아보기

제품


릴리스

R2017b

Community Treasure Hunt

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

Start Hunting!

Translated by