how to read a matrix from a text file in matlab

2020-03-30 01:55发布

I have a text file which has 500 columns and 500 rows, of numerical(integer) values . Every element in the row is separated by a tab. I want to read this file as a matrix in matlab. Example(my text file is like this):

 1 2 2 1 1 2 
 0 0 0 1 2 0
 1 2 2 1 1 2 
 0 0 0 1 2 0

And after reading this text file as a matrix (a[]) in matlab I want to do transpose. Help me.

4条回答
Rolldiameter
2楼-- · 2020-03-30 02:35

Have you tired load with -ascii option?
For example

 a = load('myfile.txt', '-ascii'); % read the data
 a = a.'; %' transpose
查看更多
老娘就宠你
3楼-- · 2020-03-30 02:40

You could simply do:

yourVariable = importdata('yourFile.txt')';
%Loads data from file, transposes it and stores it into 'yourVariable'.
查看更多
够拽才男人
4楼-- · 2020-03-30 02:54
% Pre-allocate matrix
Nrow=500; Ncol=500;
a = zeros(Nrow,Ncol);
% Read file
fid = fopen('yourfile.txt','r');
for i:1:Nrow
   a(i,:) = cell2mat(textscan(fid,repmat('%d ',Ncol));
end
fclose(fid); 
% Trasnspose matrix
a_trans = a.';
查看更多
兄弟一词,经得起流年.
5楼-- · 2020-03-30 02:56

You can use importdata. Something like:

filename = 'myfile01.txt';
delimiterIn = '\t';
headerlinesIn = 1;
A = importdata(filename,delimiterIn,headerlinesIn);
A_trans = A';

You can skip headerlines if your file does not have any haeder.. (It is the number of lines before the actual data starts)

Taken from Matlab documentation, improtdata

查看更多
登录 后发表回答