声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 1515|回复: 8

[综合讨论] matlab数据转换问题

[复制链接]
发表于 2009-3-3 02:07 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
MATLAB里如何把.XLS里的数据转换成实数呢?
我在MATLAB里的调用格式为:[l1,dataxy,l2]=XLSREAD('aaa.xls')
运行结果为:
dataxy =
    '0'      '1'         '2'         '3'    '4'
    '1'      '400.00'    '138.49'     ''     ''
    '2'      '415.00'    '140.96'     ''     ''
    '3'      '430.00'    '143.39'     ''     ''
    '4'      '445.00'    '145.78'     ''     ''
    '5'      '460.00'    '148.13'     ''     ''
    '6'      '475.00'    '150.44'     ''     ''
如何把这些值转换为实数???
回复
分享到:

使用道具 举报

发表于 2009-3-3 10:12 | 显示全部楼层
先用class看一下dataxy的类型,看起来像是字符串型。如果是字符型可以用str2num
发表于 2009-3-3 11:07 | 显示全部楼层
旧版并无xlsread函数, 以前没用, 刚刚试了下!
无楼主aaa.xls的档案, 不确定其中相关格式为何?
随意产生数值格式, dataxy应该会空cell才是!
猜测楼主的excel档中的格式可能为文字格式或中文输入造成dataxy有东东!
不过亦可用cell2mat转换!
 楼主| 发表于 2009-3-3 13:02 | 显示全部楼层
其实这个aaa.xls是组态王得数据记录,我要在MATLAB里用,但是格式不对,现在问题已经解决了,MATLAB代码如下:
[l1,dataxy,l3]=XLSREAD('aaa.xls')
data=dataxy(2:end,2:3)%把dataxy里的第二行的第二列和第三列读入data里
datax=data(:,1) %cell类型
datay=data(:,2)
datax1=char(datax)%cell转换成char类型
datay1=char(datay)
x=str2num(datax1)%char类型转换成实型
y=str2num(datay1)

评分

1

查看全部评分

 楼主| 发表于 2009-3-3 13:07 | 显示全部楼层
还有一个问题
比如我得到得数据是x= 0.01219,把这个数据要记录到b.TXT文件里,可是在记录里显示  1.2192115e-002
我怎么能把0.01219存到文件里啊?
我的代码如下:

x= 0.01219
save adata.txt x -ASCII
由于学习MATLAB时间不长,基础问题较多,呵呵
发表于 2009-3-3 13:46 | 显示全部楼层

回复 5楼 auto_xy 的帖子

使用fprintf可以使用指定的格式来保存数据。

评分

1

查看全部评分

 楼主| 发表于 2009-3-3 16:33 | 显示全部楼层

回复 6楼 sogooda 的帖子

谢谢sogooda!
save bdata.txt b -ascii
fid = fopen('bdata.txt','wt');
fprintf(fid,'%1.3f',b);
fclose(fid);
发表于 2009-3-3 17:59 | 显示全部楼层
 楼主| 发表于 2009-3-10 11:45 | 显示全部楼层

回复 8楼 ChaChing 的帖子

组态王获得PLC的数据,再通过组态王把它记录在了aaa.xls文件里:@P

[ 本帖最后由 auto_xy 于 2009-3-10 11:47 编辑 ]
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-11-6 09:43 , Processed in 0.065339 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表