文章目录

  • MATLAB加载csv文件的4种方法
  • 用MATLAB对csv数据进行滤波插值制表
    • 1 MATLAB加载csv文件,合并数据
    • 2 MATLAB滤波和插值
    • 3 MATLAB绘制图表
    • 4 附录——MATLAB完整代码

MATLAB加载csv文件的4种方法

1 使用csvread函数

csvread()函数有三种使用方法:

 M = csvread('filename')M = csvread('filename', row, col)M = csvread('filename', row, col, range)

第一种方法中,直接输入文件名,将数据读到矩阵M中。这里要求csv文件中只能包含数字

第二种方法中,除了文件名,还指定了开始读取位置的行号(row)和列号(col)。
**这里,行号、列号以0开始计数。**也就是说,row=0, col=0表示从文件中第一个数开始读。

第三种方法中,range限定了读取的范围。range = [R1 C1 R2 C2],这里(R1,C1)是读取区域的左上角,(R2,C2)是读取区域的右下角。在使用这种方法时,要求row, col等于range中的前两项。

注意:csv文件中的空项,读到矩阵中时,会初始化为0.

2 使用importdata函数

importdata('myfile.cvs')

前提条件是,都是数据格式

3 使用load函数

B = load('data.csv')

前提条件是,都是数据格式

4 直接拖到Matlab的工作区

如果文件中全部都是数据的话,可以直接将数据拖动到Matlab的工作区内。

在保证所有数据都被选中的情况下,在工具栏的“导入的数据”中选择要导入数据的类型,如果全部为数据,则可以导出为列矢量或者数值矩阵。

参考:MATLAB读取cvs文件的几种方法

用MATLAB对csv数据进行滤波插值制表

1 MATLAB加载csv文件,合并数据

由于csv文件中含有字符串信息,所以采取第一种方法,注意,第一个元素的位置是(0,0)!在MATLAB中输入:

AutoPilotMat = csvread('auto_pilot_enabled__info.csv',1,0);

得到csv中的数据矩阵

依次读取所有数据,并整合到一个矩阵中

AutoPilotMat = csvread('auto_pilot_enabled__info.csv',1,0);
FollowExpectMat = csvread('follow_expect_value_data.csv',1,0);
FollowRealMat = csvread('follow_real_value_data.csv',1,0);
FollowMatRaw = [AutoPilotMat(:,:),FollowExpectMat(:,2),FollowRealMat(:,2)];

2 MATLAB滤波和插值

然后提取属于自动驾驶部分的有效数据,进行滤波(除去200米的数据),除去之后用左右两边的数据来进行线性插值,要注意查找左右两边数据的时候,不要超出边界,查找边界的处理逻辑为:

if (200 == M(i,2))% search left side to find valid valueleft = i;leftEdgeFlag = 0;while( M(left,2) == 200 )            % if go to the edge, set leftEdgeFlag, then breakif (1 == left)leftEdgeFlag = 1;break;elseleft = left-1;  endendleftValidValue = M(left,2);
end

线性插值的逻辑为:

 distanceLeft = i-left;distanceRight = right-i;distanceTotal = right-left;weightCoefficient = [distanceLeft/distanceTotal,distanceRight/distanceTotal];estimateValue = [leftValidValue,rightValidValue]*weightCoefficient';

3 MATLAB绘制图表

最后画图,添加说明信息:

% start to figure
figure;
% plot expected follow distance with green lines
plot(M(:,1),'g');
hold on;
% plot real follow distance with red lines
plot(M(:,2),'r');
% add label, title and legends
xlabel('frame','Fontsize',12);
ylabel('distance(m)','Fontsize',12);
title('Follow Distance Offset','Fontsize',18)
legend('expect follow distance','real follow distance')

得到:

4 附录——MATLAB完整代码

完整MATLAB代码:

% function:     1, parse the csv files, reorgnize csv files
%               2, filter data and renew the error value
%               3, plot figure to analysis expected follow distance vs
%                  real follow distance
% contributor:  liukai
% version:      v1.0
% last modify time:     2019.05.22.15.04clear all;
close all;
clc;AutoPilotMat = csvread('auto_pilot_enabled__info.csv',1,0);
FollowExpectMat = csvread('follow_expect_value_data.csv',1,0);
FollowRealMat = csvread('follow_real_value_data.csv',1,0);% merge all these data
FollowMatRaw = [AutoPilotMat(:,:),FollowExpectMat(:,2),FollowRealMat(:,2)];
% auto pilot is on from row 7026
% extract auto pilot data, first column = follow_expect, secend column =
% follow_real
AutoPilotFollowMat = FollowMatRaw(7026:8495,3:4);
% filt data which is 200, use average data to replace it
M = AutoPilotFollowMat;
for i = 1:size(M,1)if (200 == M(i,2))% search left side to find valid valueleft = i;leftEdgeFlag = 0;while( M(left,2) == 200 )            % if go to the edge, set leftEdgeFlag, then breakif (1 == left)leftEdgeFlag = 1;break;elseleft = left-1;  endendleftValidValue = M(left,2);% search right side to find valid valueright = i;while( M(right,2) == 200 )% if go to the edge, set rightEdgeFlag, then breakif ( size(M,1) == right)rightEdgeFlag = 1;break;elseright = right+1;  end              endrightValidValue = M(right,2);% estimate real value, linear additiondistanceLeft = i-left;distanceRight = right-i;distanceTotal = right-left;weightCoefficient = [distanceLeft/distanceTotal,distanceRight/distanceTotal];estimateValue = [leftValidValue,rightValidValue]*weightCoefficient';% renew 200 with estimateValueM(i,2) = estimateValue;end
end
% filteredAutoPilotFollowMat = M;% start to figure
figure;
% plot expected follow distance with green lines
plot(M(:,1),'g');
hold on;
% plot real follow distance with red lines
plot(M(:,2),'r');
% add label, title and legends
xlabel('frame','Fontsize',12);
ylabel('distance(m)','Fontsize',12);
title('Follow Distance Offset','Fontsize',18)
legend('expect follow distance','real follow distance')

使用MATLAB分析处理csv数据相关推荐

  1. matlab示波器导出csv数据,示波器CSV波形数据导入Matlab进行FFT分析

    示波器CSV波形数据导入Matlab进行FFT分析 1,将CSV文件拖到workspace窗口,弹出的Import Wizard窗口中,点选"Next",新窗口中选第二项" ...

  2. GEE8:多个矢量点的NDVI连续数据的获取及分析(CSV数据)

    矢量点像元值 1. 哨兵2号数据: 1.1 Sentinel-2 MSI: MultiSpectral Instrument, Level-1C 1.2 GEE获取矢量站点连续NDVI值 2. Pyt ...

  3. 如何用matlab分析chipscope的数据

    用chipscope采集数据 用chipscope采集数据时,为了方便以后导入matlab查看,建议查看采样信号要使用bus总线方式. 点击file->export 选项,弹出一个export ...

  4. COMTRADE录波数据导入MATLAB分析的方法

    各路大佬发表了很多用Python编程.MATLAB编程实现COMTRADE录波数据提取的方法,对我这种小白来说属实是看不懂(也不想去看),只想怎么快点把数据提取出来做研究. 这里介绍一种极其简单的数据 ...

  5. matlab segy文件,利用matlab实现segy格式数据的读写研究和分析.ppt

    利用matlab实现segy格式数据的读写研究和分析 2.SEGY数据格式 地震数据一般以地震道为单位进行组织,采用SEG-Y文件格式存储.SEG-Y格式是由SEG (Society of Explo ...

  6. 2dpsk调制解调实验matlab_ila抓取数据,matlab分析,调试AD9361信号通路

    关注.星标公众号,直达精彩内容 公众号:ZYNQ 作者:watchman AD9361功能介绍 上次我们介绍了AD9361的配置,代码,采样,脚本转换,软件使用等等,今天我们来调试并使用ila抓取实测 ...

  7. matlab两组数据的相关度,怎么分析两组数据的相关性?比如A=【1 2 3 4 5 6 7 】 B=【2 3 4 5 6 7 8】 最好用MATLAB...

    怎么分析两组数据的相关性?比如A=[1 2 3 4 5 6 7 ] B=[2 3 4 5 6 7 8] 最好用MATLAB 关注:261  答案:2  手机版 解决时间 2021-01-12 04:4 ...

  8. matlab 折线图 柱状图,数据可视化分析(柱状图、折线图、热力图、柱状图)

    分析文件'集美大学各省录取分数.xlsx',完成以下功能: 1)集美大学2015-2018年间不同省份在本一批的平均分数,柱状图展示排名前10的省份, 2)分析福建省这3年各批次成绩情况,使用折线图展 ...

  9. matlab界area_Matlab的数据科学界

    matlab界area 意见 (Opinion) My personal interest in Data Science spans back to 2011. I was learning mor ...

最新文章

  1. Android之View绘制流程源码分析
  2. 李沐团队半年离开六人,MxNet是否英雄落幕?贾扬清:关键能否解决新痛点
  3. Python解决ModuleNotFoundError: No module named ‘Queue‘的问题
  4. VueJS组件之全局组件与局部组件
  5. * 类描写叙述:字符串工具类 类名称:String_U
  6. K 近邻法(K-Nearest Neighbor, K-NN)
  7. vs2019编译c语言提示有病毒,关于VS2019代码编译的问题(C++)
  8. Python中直接查看对象值和使用print()输出的区别
  9. 腾讯云服务器的环境配置与使用
  10. 获取数据库值,再在其值上做修改
  11. mysql-------流程控制结构
  12. Bailian2720 大象喝水【模拟】
  13. 【python】中 type dtype astype辨析
  14. 如何让我的世界变成别人的世界(国际版)——HMCL启动器之如何同时用到mod和光影
  15. 代码详解:以股票预测为例,揭秘时间序列预测
  16. MyBioSource 丨艾美捷抗C17ORF75抗体:兔C17ORF75多克隆抗体
  17. 原生JavaScript实现连缀调用
  18. Kotlin 注解全解析
  19. 如何吸引全球级「AI大咖」,BAT等大佬怎么说?
  20. 使用rufus制作Windows Server 2012 R2 U盘_wentfar·tsao

热门文章

  1. 彩色图+车牌颜色测试结果分析
  2. 随想录(产品-工程开发-算法)
  3. python编程(orm原理和实践)
  4. 随想录(我们应该编写什么样的软件)
  5. python语言的基础知识_pythone语言基础知识汇总
  6. apk 打包 java出错_Android Release 打包提示 错误:找不到符号
  7. html调用谷歌内核,360浏览器指定Webkit(chrome)内核
  8. 监听者模式 java_java监听者模式
  9. canvas 擦除动画_帧动画的多种实现方式与性能对比
  10. git ssh拉取代码_Git 常用命令及应用这一篇就够了(新手向)