Read text file in MATLAB

3 views (last 30 days)
fendertunes
fendertunes on 3 Jul 2016
Commented: Azzi Abdelmalek on 3 Jul 2016
Hi,
I have a .txt file with lots of lines of text in the following format -
18400 8510.27+j8207.84
19200 1336.93+j3261.25
20000 14176.3+j11725.7
I would like to read this in matlab and plot it. How can I do it?
I have tried converting the .txt to .xlsx and using xlsread function -
[col1, col2] = xlsread('myfile.xlsx');
But the result is a double and a cell matrix. I can't treat cell as a number to plot.
Also the length of rows in the .txt file could vary (could be 100 rows, couple be 10,000 rows). Is there a way to read the numbers? I am ok with creating temporary variables, using repmat or doing str2num conversion. However, I haven't figured out a way to do it so far.

Accepted Answer

Azzi Abdelmalek
Azzi Abdelmalek on 3 Jul 2016
Edited: Azzi Abdelmalek on 3 Jul 2016
M=importdata('yourfile.txt')
a=regexp(M,'\S+','match');
b=strrep([a{:}],'j','j*')
c=str2double(b)
out=reshape(c,[],2)
  2 Comments
fendertunes
fendertunes on 3 Jul 2016
Azzi, When I do it this way, I get the following error message: Error using dlmread (line 147)
Mismatch between file and format string.
Trouble reading 'Numeric' field from file (row number 2, field number 1) ==> +j0\n
Also, some rows have complex values saved as -
12000 15142.1+j-1037.75
12800 51708.5+j-4586.51
Maybe MATLAB has a problem interpreting this?
Azzi Abdelmalek
Azzi Abdelmalek on 3 Jul 2016
look at edited answer

Sign in to comment.

More Answers (0)

Products

Community Treasure Hunt

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

Start Hunting!