How to import one column from txt file

24 Ansichten (letzte 30 Tage)
Dominika
Dominika am 7 Mär. 2014
Kommentiert: Image Analyst am 8 Mär. 2014
Hi
I need to import one column from .txt file which contains only numbers like 1.54 1.28 ...
Which function does that?
Thanks

Antworten (4)

Jos (10584)
Jos (10584) am 7 Mär. 2014
Take a look at at one of the import functions (textscan, load, etc.)
The easiest way is to import all the columns and then only keep the one you want to keep. For instance:
A = load ...
A = A(:,IndexOfColumnToKeep) ;

Image Analyst
Image Analyst am 7 Mär. 2014
You can use csvread if it's in csv format
M = csvread(filename,row,col)
Or use dlmread, importdata, textscan, fgetl, etc. depending on the format of the text file.
  1 Kommentar
Image Analyst
Image Analyst am 8 Mär. 2014
That file has such a big variety of formats that I'd probably just use allwords and fgetl(). Then build up a cell array of the words in a loop and then call xlswrite. In pseudocode
fid = fopen('S1P1.txt', 'r');
tline = fgetl(fid);
lineCounter = 1;
while ischar(tline)
disp(tline)
tline = fgetl(fid);
% Separate the line into separate words.
theWords = allwords(tline);
% Put the words into a cell array.
for k = 1 : length(theWords)
ca{lineCounter, k} = theWords{k};
end
end
xlswrite('text.xlsx', ca);
fclose(fid);
That's untested code just off the top of my head and it may need debugging (which I hope you know how to do).

Melden Sie sich an, um zu kommentieren.


Dominika
Dominika am 8 Mär. 2014
Thanks for the answers.
I try to convert .txt to .xsls
file S1P1.txt looks like this:
"Norsonic RTA840"
"Ch1 LAST"
"Period=0"
"Frq[Hz]" "T20" "T30" "EDT" "S/N-MLS[dB]"
" 50" 1.54 1.45? 1.69 39.5
" 63" 1.28 1.46? 0.83 39.0
" 80" 1.35 1.43? 1.27 42.0
" 100" 1.28 1.35 1.20 45.8
" 125" 1.14 1.16 1.12 49.2
" 160" 0.92 0.92 1.10 45.4
" 200" 0.82 0.94 0.51 50.3
" 250" 0.33 0.44 0.47 50.2
" 315" 0.35 0.44 0.13 50.1
" 400" 0.29 0.36 0.20 47.4
" 500" 0.21 0.27 0.17 50.9
" 630" 0.16 0.21 0.14 55.8
" 800" 0.11 0.15 0.16 53.3
" 1k" 0.14 0.15 0.09 57.5
" 1.25k" 0.09 0.11 0.12 54.8
" 1.6k" 0.09 0.10 0.09 61.3
" 2k" 0.06 0.08 0.08 62.5
" 2.5k" 0.06 0.08 0.07 65.9
" 3.15k" 0.05 0.06 0.06 63.9
" 4k" 0.03 0.03 0.04 59.3
" 5k" 0.04 0.03 0.04 54.2
" L-netw" 0.11? 0.13? 0.10? 55.1
" A-netw" 0.09 0.11 0.10 60.3
"Setup information"
"Generated: Wed 19 Feb 2014 16:08:10"
"Measurement mode: Lvl-Flt-Mlt (Reverberation)"
"Master Instrument Mode: MLS"
"Register: LAST"
"Title:"
"No measurement title specified"
I tried with this
A = fileread('S1P1.txt') ;
data = textscan(A, '%s %f %f %f %f', 'delimiter', ' ') ;
data = [data{1}, num2cell([data{2:end}])] ;
xlswrite('S1P1.xlsx', data) ;
It creates file S1P1.xlsx but all is put into column A in excel. What I want is to have each column separately so that I can read then only column B for "T20". I guess the problem is 'delimiter'.
Thanks!
  1 Kommentar
per isakson
per isakson am 8 Mär. 2014
Bearbeitet: per isakson am 8 Mär. 2014
  • Which lines are part of the file?
  • Why not using Excel?

Melden Sie sich an, um zu kommentieren.


Dominika
Dominika am 8 Mär. 2014
"Norsonic RTA840"
"Ch1 LAST"
"Period=0"
"Frq[Hz]" "T20" "T30" "EDT" "S/N-MLS[dB]"
" 50" 1.54 1.45? 1.69 39.5
" 63" 1.28 1.46? 0.83 39.0
" 80" 1.35 1.43? 1.27 42.0
" 100" 1.28 1.35 1.20 45.8
" 125" 1.14 1.16 1.12 49.2
" 160" 0.92 0.92 1.10 45.4
" 200" 0.82 0.94 0.51 50.3
" 250" 0.33 0.44 0.47 50.2
" 315" 0.35 0.44 0.13 50.1
" 400" 0.29 0.36 0.20 47.4
" 500" 0.21 0.27 0.17 50.9
" 630" 0.16 0.21 0.14 55.8
" 800" 0.11 0.15 0.16 53.3
" 1k" 0.14 0.15 0.09 57.5
" 1.25k" 0.09 0.11 0.12 54.8
" 1.6k" 0.09 0.10 0.09 61.3
" 2k" 0.06 0.08 0.08 62.5
" 2.5k" 0.06 0.08 0.07 65.9
" 3.15k" 0.05 0.06 0.06 63.9
" 4k" 0.03 0.03 0.04 59.3
" 5k" 0.04 0.03 0.04 54.2
" L-netw" 0.11? 0.13? 0.10? 55.1
" A-netw" 0.09 0.11 0.10 60.3
"Setup information"
"Generated: Wed 19 Feb 2014 16:08:10"
"Measurement mode: Lvl-Flt-Mlt (Reverberation)"
"Master Instrument Mode: MLS"
"Register: LAST"
"Title:"
"No measurement title specified"
Everything above is exactly what .txt file contains. What do you mean by using Excel? This is what I'm trying to do, I try to convert it to excel file
Thanks :)

Kategorien

Mehr zu Standard File Formats finden Sie in Help Center und File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by