使用MATLAB分析处理csv数据
文章目录
- 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数据相关推荐
- matlab示波器导出csv数据,示波器CSV波形数据导入Matlab进行FFT分析
示波器CSV波形数据导入Matlab进行FFT分析 1,将CSV文件拖到workspace窗口,弹出的Import Wizard窗口中,点选"Next",新窗口中选第二项" ...
- GEE8:多个矢量点的NDVI连续数据的获取及分析(CSV数据)
矢量点像元值 1. 哨兵2号数据: 1.1 Sentinel-2 MSI: MultiSpectral Instrument, Level-1C 1.2 GEE获取矢量站点连续NDVI值 2. Pyt ...
- 如何用matlab分析chipscope的数据
用chipscope采集数据 用chipscope采集数据时,为了方便以后导入matlab查看,建议查看采样信号要使用bus总线方式. 点击file->export 选项,弹出一个export ...
- COMTRADE录波数据导入MATLAB分析的方法
各路大佬发表了很多用Python编程.MATLAB编程实现COMTRADE录波数据提取的方法,对我这种小白来说属实是看不懂(也不想去看),只想怎么快点把数据提取出来做研究. 这里介绍一种极其简单的数据 ...
- matlab segy文件,利用matlab实现segy格式数据的读写研究和分析.ppt
利用matlab实现segy格式数据的读写研究和分析 2.SEGY数据格式 地震数据一般以地震道为单位进行组织,采用SEG-Y文件格式存储.SEG-Y格式是由SEG (Society of Explo ...
- 2dpsk调制解调实验matlab_ila抓取数据,matlab分析,调试AD9361信号通路
关注.星标公众号,直达精彩内容 公众号:ZYNQ 作者:watchman AD9361功能介绍 上次我们介绍了AD9361的配置,代码,采样,脚本转换,软件使用等等,今天我们来调试并使用ila抓取实测 ...
- 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 ...
- matlab 折线图 柱状图,数据可视化分析(柱状图、折线图、热力图、柱状图)
分析文件'集美大学各省录取分数.xlsx',完成以下功能: 1)集美大学2015-2018年间不同省份在本一批的平均分数,柱状图展示排名前10的省份, 2)分析福建省这3年各批次成绩情况,使用折线图展 ...
- matlab界area_Matlab的数据科学界
matlab界area 意见 (Opinion) My personal interest in Data Science spans back to 2011. I was learning mor ...
最新文章
- Android之View绘制流程源码分析
- 李沐团队半年离开六人,MxNet是否英雄落幕?贾扬清:关键能否解决新痛点
- Python解决ModuleNotFoundError: No module named ‘Queue‘的问题
- VueJS组件之全局组件与局部组件
- * 类描写叙述:字符串工具类 类名称:String_U
- K 近邻法(K-Nearest Neighbor, K-NN)
- vs2019编译c语言提示有病毒,关于VS2019代码编译的问题(C++)
- Python中直接查看对象值和使用print()输出的区别
- 腾讯云服务器的环境配置与使用
- 获取数据库值,再在其值上做修改
- mysql-------流程控制结构
- Bailian2720 大象喝水【模拟】
- 【python】中 type dtype astype辨析
- 如何让我的世界变成别人的世界(国际版)——HMCL启动器之如何同时用到mod和光影
- 代码详解:以股票预测为例,揭秘时间序列预测
- MyBioSource 丨艾美捷抗C17ORF75抗体:兔C17ORF75多克隆抗体
- 原生JavaScript实现连缀调用
- Kotlin 注解全解析
- 如何吸引全球级「AI大咖」,BAT等大佬怎么说?
- 使用rufus制作Windows Server 2012 R2 U盘_wentfar·tsao
热门文章
- 彩色图+车牌颜色测试结果分析
- 随想录(产品-工程开发-算法)
- python编程(orm原理和实践)
- 随想录(我们应该编写什么样的软件)
- python语言的基础知识_pythone语言基础知识汇总
- apk 打包 java出错_Android Release 打包提示 错误:找不到符号
- html调用谷歌内核,360浏览器指定Webkit(chrome)内核
- 监听者模式 java_java监听者模式
- canvas 擦除动画_帧动画的多种实现方式与性能对比
- git ssh拉取代码_Git 常用命令及应用这一篇就够了(新手向)