如何从MATLAB中的数据文件中获取特定行和列中的选定数据?

时间:2016-02-24 01:54:44

标签: matlab text-files selectedvalue textscan data-files

我需要你的帮助。 我有一个如下所示的数据文件,

frames.trr  frame   0:00                    
    natoms= 1000    step=   0   time=0.0000000e+00  lambda= 0
    box (3x3):                  
    box[    0]={    1.72E+01    0.00E+00    0.00000e+00}        
    box[    1]={    0.00E+00    1.52E+01    0.00000e+00}        
    box[    2]={    0.00E+00    0.00E+00    1.53731e+01}        
    x   (1000x3):                   
    x[  0]={    1.22E+01    1.06E+01    1.33530e+01}        
    x[  1]={    1.15E+01    7.92E+00    5.99100e+00}        
    x[  2]={    1.42E+01    1.30E+01    1.52530e+01}    

                        ....

    x[1000]={   1.42E+01    1.30E+01    1.52530e+01}    
    v   (1000x3):                   
    v[  0]={    2.40E-01    -1.34E-01   -2.53100e-01}       
    v[  1]={-6.91001e-02    -8.42E-02   -2.24600e-01}           
    v[  2]={-8.99700e-01    1.50E-02    5.57800e-01}

                        ....

    v[1000]={-8.99700e-01   1.50E-02    5.57800e-01}
frames.trr  frame   1:00                    
    natoms= 1000    step=   2   time=2.0000001e-03  lambda= 0
    box (3x3):                  
    box[    0]={    1.72E+01    0.00E+00    0.00000e+00}        
    box[    1]={    0.00E+00    1.52E+01    0.00000e+00}        
    box[    2]={    0.00E+00    0.00E+00    1.53731e+01}        
    x   (1000x3):                   
    x[  0]={    1.22E+01    1.06E+01    1.33525e+01}        
    x[  1]={    1.15E+01    7.92E+00    5.99055e+00}        
    x[  2]={    1.42E+01    1.30E+01    1.52541e+01}        
    x[  3]={    1.35E+01    1.27E+01    1.08896e+01}    

                        ....

    x[1000]={   1.42E+01    1.30E+01    1.52530e+01}    
    v   (1000x3):                   
    v[  0]={    2.40E-01    -1.34E-01   -2.53100e-01}       
    v[  1]={-6.91001e-02    -8.42E-02   -2.24600e-01}           
    v[  2]={-8.99700e-01    1.50E-02    5.57800e-01}

                        ....

    v[1000]={-8.99700e-01   1.50E-02    5.57800e-01}

我想从每行的三列读取数字(1.22E+01 1.06E+01 1.33530e+01)并跳过其他标题。我该怎么做?

1 个答案:

答案 0 :(得分:0)

您可以使用MATLAB的数据导入向导。您可以指定分隔符,如下所示: enter image description here

在主页功能区(右侧的导入数据)上访问它: enter image description here

它将为您生成一个脚本,您可以将其重用于许多数据文件。从那里,您可以使用简单的for循环来提取"X[ 0]={"

后面的数字