2

我有一个文本文件,其中包含500 columns500 rows的数值(整数)值。行中的每个元素都由制表符分隔。我想将此文件作为matlab. 示例(我的文本文件是这样的):

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

在 matlab中将这个文本文件作为矩阵 ( a[]) 读取后,我想做transpose。帮我。

4

4 回答 4

2

您可以使用importdata. 就像是:

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

如果您的文件没有任何 haeder,您可以跳过标题行。(这是实际数据开始之前的行数)

取自 Matlab 文档,improtdata

于 2013-04-02T11:10:34.307 回答
1

你厌倦load-ascii选择吗?
例如

 a = load('myfile.txt', '-ascii'); % read the data
 a = a.'; %' transpose
于 2013-04-02T13:46:47.533 回答
0

你可以简单地做:

yourVariable = importdata('yourFile.txt')';
%Loads data from file, transposes it and stores it into 'yourVariable'.
于 2013-04-02T11:50:58.547 回答
0
% 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.';
于 2013-04-02T11:15:18.250 回答