I have a text file that contains 4*10 array. I want to read 1st column element first and store that column in say x, process it and then read 2nd column and store in same variable x. Is there any commands for that? please help?
1 Ansicht (letzte 30 Tage)
Ältere Kommentare anzeigen
Sachin Patil
am 22 Sep. 2016
Kommentiert: Sachin Patil
am 22 Sep. 2016
-1.9360 20.7501 -1.3800 0.2735 -1.9360 20.7501 -1.3800 0.2735 20.7501 -1.3800
-2.5797 27.6486 -1.3819 0.2524 -2.5797 27.6486 -1.3819 0.2524 27.6486 -1.3819
1.5073 28.2723 -0.0000 15.0002 1.5073 28.2723 -0.0000 15.0002 -0.0000 15.0002
-1.9770 37.0812 0.0000 15.0009 -1.9770 37.0812 0.0000 15.0009 0.0000 15.0009
3 Kommentare
KSSV
am 22 Sep. 2016
you may try to save your text file as .xls file or .csv file then use the xlsread() function..
Akzeptierte Antwort
KSSV
am 22 Sep. 2016
Bearbeitet: KSSV
am 22 Sep. 2016
clc; clear all ;
for i = 1:10 % loop for each column
ColNum = i; %colmn number
fmt = [ repmat('%*s ',1,ColNum-1), ' %f %*[^\n]'] ;
fid = fopen('data.txt') ;
data = textscan(fid, fmt) ;
%%do what you want %%
data{1}
fid = fclose(fid);
end
3 Kommentare
Stephen23
am 22 Sep. 2016
@Sachim Patel: this is very inefficient concept and very slow code. Reading and writing from file is a slow process. Your entire concept would be simpler and faster if you simply read the whole data into MATLAB once, and perform whatever operation you want inside MATLAB. You should also learn how to process entire matrices and arrays using MATLAB, otherwise your code will be very inefficient.
See my answer for a much more efficient solution.
Weitere Antworten (1)
Stephen23
am 22 Sep. 2016
This is a much simpler and more efficient code:
M = dlmread('test.txt');
for row = 1:size(M,1) % loop over the rows
M(row,:)
end
for col = 1:size(M,2) % loop over the columns
M(:,col)
end
Tested on this file:
Siehe auch
Kategorien
Mehr zu Data Import and Export finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!