【问题标题】:Import coordinates from file .txt with Matlab使用 Matlab 从文件 .txt 导入坐标
【发布时间】:2016-11-18 22:50:21
【问题描述】:

我需要用 matlab 绘制一些轨迹,我在文件 .txt 中有每个点的坐标,我使用 c++ 我想用 Matlab 绘制这些轨迹以进行一些比较,这是文件的示例包含坐标:

515   // this is x
317   // this is y
 0     // i dont want to import this variable
511    // this is x
328     // this is y
20   // i dont want to import this variable
508
353
40
511
 ... etc

Matlab中有一个函数可以帮助我只导入x和y吗?

文件:

 172
 489 
 54460
 283
 469
 54480
 388
 428
 54500
 476
 384
 54520
 555
 350
 54540
 635
 325
 54560
 700
 286
 54580
 760
 250
 54600
 811
 222
 54620
 840
 192
 54640
 856
 171
 54660
 871
 175
 54680
 890
 181
 54700
 930
 170
 54720
 979
 168
 54740

【问题讨论】:

    标签: matlab


    【解决方案1】:

    您可以使用textscan 读取所有值,并使用格式说明符中的* 简单地忽略输出中的每三个值。

    fid = fopen('filename.txt', 'r');
    
    data = textscan(fid, '%d\n%d\n%*d\n');
    [x,y] = data{:};
    
    fclose(fid);
    

    另一种选择是读取所有数据,然后重塑并抓取您关心的部分。

    fid = fopen('filename.txt', 'r');
    
    data = textscan(fid, '%d');
    data = reshape(data{1}, 3, []);
    x = data(1,:);
    y = data(2,:);
    
    fclose(fid);
    

    【讨论】:

    • 它只对第一行起作用,对于第二行他 import []
    • @all.west 您可以将您的实际文件粘贴到您的问题中(没有 cmets)。所有数字都是整数吗?
    • @all.west 所以每个数字的左边都有一堆空格?
    • 不,我在文件中没有空格,我添加它是为了在论坛中显示清楚
    • @all.west 重点是看看你的文件是什么样子,空格很重要,所以添加这会导致问题......很高兴第二个对你有用
    猜你喜欢
    • 2015-03-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-04
    • 1970-01-01
    • 2018-12-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多