How to import one column from txt file

14 visualizzazioni (ultimi 30 giorni)
Dominika
Dominika il 7 Mar 2014
Commentato: Image Analyst il 8 Mar 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

Risposte (4)

Jos (10584)
Jos (10584) il 7 Mar 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 il 7 Mar 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 Commento
Image Analyst
Image Analyst il 8 Mar 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).

Accedi per commentare.


Dominika
Dominika il 8 Mar 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 Commento
per isakson
per isakson il 8 Mar 2014
Modificato: per isakson il 8 Mar 2014
  • Which lines are part of the file?
  • Why not using Excel?

Accedi per commentare.


Dominika
Dominika il 8 Mar 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 :)

Categorie

Scopri di più su Large Files and Big Data in Help Center e File Exchange

Tag

Community Treasure Hunt

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

Start Hunting!

Translated by