在matlab中读取不同长度的数据

时间:2013-04-22 19:45:02

标签: matlab scanf

我有一个'output.polygon'文件,存储多行数据,长度不同,如下所示

7760 5593040 0 5622880 0 5591040 7760 5593040 
65000 5407200 0 5407200 0 0 65000 0 65000 5407200 
7760 5593040

我要做的是首先读取所有数据,然后用空格解析它。

conductor = fopen('output.polygon');
s = fscanf(conductor, '%s');
A = strread(s);

但是,我的代码不起作用。任何人都可以帮我指出问题,并提示这个问题吗?非常感谢。

3 个答案:

答案 0 :(得分:1)

您可以尝试使用importdata函数,该函数允许您指定列分隔符。以下代码将您的数据加载到稀疏矩阵A:

 A = importdata('output.polygon',' ');

 A =

    7760     5593040           0     5622880           0     5591040        7760     5593040
   65000     5407200           0     5407200           0           0       65000           0
   65000     5407200         NaN         NaN         NaN         NaN         NaN         NaN
    7760     5593040         NaN         NaN         NaN         NaN         NaN         NaN

答案 1 :(得分:0)

fid = fopen('output.polygon','r');
A = textscan(fid,'%s','Delimiter','\n');
A = A{1};

答案 2 :(得分:0)

所以你可以这样做:

conductor = fopen('output.polygon');
A = fscanf(conductor, '%d');