Matlab怎么读入csv文件

 我来答
xiawei123
高粉答主

2019-07-19 · 每个回答都超有意思的
知道答主
回答量:1626
采纳率:100%
帮助的人:47.6万
展开全部

1、假设有一个数值文件csvlist.dat,数值情况如下图所示。csv文件是一系列以逗号分开的数值,其逗号为英文模式下输入的逗号。当然下面还有许多数值,就不一一列举了。

2、Matlab中是使用csvread命令来读取这些文件。 filename = 'csvlist.dat';aa = csvread(filename);可以看到csv文件中所有的数据均在aa中了。

3、如果要有选择的输出文件中的数据,可以在命令中加入一些指示。接上述结果,输入:bb = csvread(filename,3,5);输出的数据为第4~100行,第6~8列的数据。因为Matlab读取csv数据时,以0为开头第一行第一列。

4、当然,也可以使用如下命令来读取相应的行列:M = csvread('csvlist.dat',1,0,[1,0,4,5]),代表了数据的第1~4行,0~5列的数据。

5、如果文件中全部都是数据的话,可以直接将数据拖动到Matlab的工作区内。加载后出现下面的数据列表。

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

7、下图为导出的数值矩阵,直接以文件中”.“之前的名称命名。完成。

colinezhong
推荐于2017-09-13 · TA获得超过7.7万个赞
知道大有可为答主
回答量:2万
采纳率:94%
帮助的人:3766万
展开全部
CSVREAD

第一种:M = CSVREAD('FILENAME') ,直接读取csv文件的数据,并返回给M,

这时要求整个csv文件内容全部为用逗号隔开的数字,不能用其他字符。

第二种:M = CSVREAD('FILENAME',R,C) ,读取csv文件中从第R-1行,第C-1列

的数据开始的数据,这对带有头文件说明的csv文件(如示波器等采集的文件)的

读取是很重要的。

第三种:M = CSVREAD('FILENAME',R,C,RNG),其中 RNG = [R1 C1 R2 C2],读取

左上角为索引为(R1,C1) ,右下角索引为(R2,C2)的矩阵中的数据。

附注:

一:对于空置的单元,CSVREAD对数据自动置零。

二:根据MATLAB R2010a的帮助,CSVREAD在未来版本中将会被取

代 ( CSVREAD will be removed in a future release. )。

csv就是文本
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
acco383
推荐于2017-09-01
知道答主
回答量:18
采纳率:0%
帮助的人:32.4万
展开全部
TEK示波器读取的波形图数据存为.csv,虽然用Excel可以直接打开,但是在Matlab里面读取的时候,
csvread和xlsread用法还是有些不同的
%Get data from a specified region in a sheet other than the
first sheet:
Numeric=xlsread(‘c:\matlab\work\myspreadsheet’,’sheet2’,’a2:j5’);
M=CSVREAD(‘FILENAME’,R,C) reads data from the comma separated
value formatted file starting at row R and column C. R and C are
zero based so that R=0 and C=0 specifies the first value in the
file.(如果数据行从15行开始,则R=14;从第一列开始则C=0)
M=CSVREAD(‘FILENAME’,R,C,RNG) reads only the range specified by
RND=[R1 C1 R2 C2] where (R1,C1)is the upper-left corner of the data
to be read and (R2,C2) is the lower-right corner. RNG can also be
specified using spreadsheet notation as in
RNG=’A1..B7’;想要确定添加个范围,比如A15:B10014,则RND=[14 0 10013 1]
因为从示波器出来的图需要一些额外的数据处理才行,所以要进行一些运算;这些在得到了返回的M后就是一个数组,直接用就OK比如%找到第2列里面的最大值or最小值
X=max(M(:,2)) or X=max(M(:,2))
%返回最大值所在列的编号
Num=find(M(:,2)==max(M(:,2)))
%得到对应行第1列的值
Y=M(find(M(:,2)==max(M(:,2))),1)
M(:,1)=M(:,1)*1E+08*12.5;
%min=min(M(:,2));
%max=max(M(:,2));
M(:,2)=(M(:,2)-min(M(:,2)))/(max(M(:,2))-min(M(:,2)));
M(:,1)=M(:,1)-M(find(M(:,2)==max(M(:,2))),1);
这样数据就处理完了,然后就是
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
就烦条0o
2018-08-03 · 知道合伙人软件行家
就烦条0o
知道合伙人软件行家
采纳数:33315 获赞数:46492
从事多年系统运维,喜欢编写各种小程序和脚本。

向TA提问 私信TA
展开全部
用csvread函数
注意:csvread函数只试用与用逗号分隔的纯数字文件
第一种:M =CSVREAD('FILENAME') ,直接读取csv文件的数据,并返回给M
第二种:M =CSVREAD('FILENAME',R,C) ,读取csv文件中从第R-1行,第C-1列的数据开始的数据,这对带有头文件说明的csv文件(如示波器等采集的文件)的读取是很重要的。
第三种:M =CSVREAD('FILENAME',R,C,RNG),其中 RNG = [R1 C1 R2 C2],读取左上角为索引为(R1,C1) ,右下角索引为(R2,C2)的矩阵中的数据。
注意:matlab认为CSV第1行第1列的单元格坐标为(0,0)
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式