如何读取以''分隔但带有逗号的十进制数字的数据

时间:2019-08-23 17:19:05

标签: octave

我需要读取和修改包含数千行的.txt文件。该文件表示数字信号的读取。每行具有以下格式:

8867.16787 : 1

有两个数字,用" space : space "隔开:

  • 第一个数字是用'。'分隔的十进制数字。
  • 第二个数字是可以为0或1的整数。

含义是:第一个数字是一种时间度量,第二个数字是读取的位。

以四行矩阵为例:

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。

有人知道怎么做吗?

2 个答案:

答案 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 );