楼主: zhaoyangwww
3268 4

求助matlab导入数据的问题! [推广有奖]

  • 1关注
  • 0粉丝

已卖:1286份资源

讲师

76%

还不是VIP/贵宾

-

威望
0
论坛币
574 个
通用积分
11.4782
学术水平
4 点
热心指数
11 点
信用等级
3 点
经验
1136 点
帖子
455
精华
0
在线时间
554 小时
注册时间
2007-10-6
最后登录
2025-8-30

楼主
zhaoyangwww 发表于 2011-12-3 07:35:20 |AI写论文
20论坛币
小弟在做一个东西,现在想把excel里做好的数据导入到matlab里,使用的是以下命令:a = xlsread('G:\filename.xls')
但是导入后只有数据没有对应日期,如何添加对应日期,然后生成相应的mat文件后可以直接用load命令读取呢?
十万火急求助!盼高人回答!所有回答小弟都给评分!谢谢!

关键词:MATLAB atlab matla 导入数据 Lab matlab
最大的愿望:早日读完PhD,赚钱报答父母,和心爱的女生相伴一生

沙发
sahalayuji 发表于 2011-12-3 09:35:11
用Excel Link 呢?

藤椅
sahalayuji 发表于 2011-12-3 09:36:11
先在excel处理一下,在后面一列输入公式
="'"&TEXT(H1,"dd-mmm-yyyy hh:mm:ss")&"'"
然后再把一列的公式都拖动出来,这个应该会吧。

也就是转换成文本,再加两个单引号,这样就可以复制到matlab里了。
把这列文本需要导入到matlab的部分复制一下。

在matlab命令行里,输入
ts={
然后按Ctrl+V粘贴
再输入一个 } 回车
这样把时间的文本形式保存到ts变量里了。
注意如果每行字符串长度相同的话,可以用方括号[]也可以用大括号{},如果长度不同就只能用大括号了。
用方括号得到的是字符矩阵,用大括号得到的是cell类型。

之后,可以用datenum(ts)把时间字符串转换成数值,
或者用[Y,M,D,H,MI,S] = datevec(ts); 把年月日时分秒分别保存到相应矩阵里。

再根据需要继续做其他工作

板凳
feng328 发表于 2011-12-3 14:12:19
excel中的日期格式和matlab的不一样,excel是从1900年1月1日开始计算的,而matlab是从公元1年开始的,可以把excel的日期调成数字格式,再在matlab中加一个固定数值就可以了。

报纸
anniekorea 发表于 2012-2-16 11:12:27
导入后没有对应日期是因为MATLAB在导入的时候把日期格式处理成文本,而不是数字。可以这样处理:
[data,textdata]= xlsread('G:\filename.xls');
date=textdata(2:end,1);  %如果日期是在第一列的话,这样提取出来是cell格式
date1=datestr(date,'yyyymmdd');  %这样处理后是字符格式
date2=str2num(date1); %这样处理后是数字格式20100214,可以对其进行加减、相等判断等运算

save date2.mat;
load date2.mat;

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
jg-xs1
拉您进交流群
GMT+8, 2026-1-2 19:47