我需要读取和修改包含数千行的.txt文件。该文件表示数字信号的读取。每行具有以下格式:
8867.16787 : 1
有两个数字,用" space : space "
隔开:
含义是:第一个数字是一种时间度量,第二个数字是读取的位。
以四行矩阵为例:
1532.25071 : 0
1532.26311 : 0
1532.27511 : 0
1532.28751 : 1
我想要两列的矩阵,其中第一列为:
1532.25071
1532.26311
1532.27511
1532.28751
第二个:
0
0
0
1
我尝试了以下代码:
fid = fopen('fileName');
A = textscan(fid,'%s %c %c');
fclose(fid);
但是,当我这样做时,我的矩阵尺寸为1x3。
有人知道怎么做吗?
答案 0 :(得分:3)
一种解决方案是仅对textscan
使用其他格式说明符,然后将单元格数组的输出格式化为值矩阵。试试这个:
fid = fopen('fileName');
A = textscan(fid, '%f : %f'); % Read both as double values
fclose(fid);
A = [A{:}]; % Horizontally concatenate into an N-by-2 double matrix
答案 1 :(得分:0)
我做了以下工作,并且工作正常:
fileX = 'fileName';
delimitador = ' : ';
A = importdata(fileX );