auto_xy 发表于 2009-3-3 02:07

matlab数据转换问题

MATLAB里如何把.XLS里的数据转换成实数呢?
我在MATLAB里的调用格式为:=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'   ''   ''
如何把这些值转换为实数???

sogooda 发表于 2009-3-3 10:12

先用class看一下dataxy的类型,看起来像是字符串型。如果是字符型可以用str2num

ChaChing 发表于 2009-3-3 11:07

旧版并无xlsread函数, 以前没用, 刚刚试了下!
无楼主aaa.xls的档案, 不确定其中相关格式为何?
随意产生数值格式, dataxy应该会空cell才是!
猜测楼主的excel档中的格式可能为文字格式或中文输入造成dataxy有东东!
不过亦可用cell2mat转换!

auto_xy 发表于 2009-3-3 13:02

其实这个aaa.xls是组态王得数据记录,我要在MATLAB里用,但是格式不对,现在问题已经解决了,MATLAB代码如下:
=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)

auto_xy 发表于 2009-3-3 13:07

还有一个问题
比如我得到得数据是x= 0.01219,把这个数据要记录到b.TXT文件里,可是在记录里显示1.2192115e-002
我怎么能把0.01219存到文件里啊?
我的代码如下:

x= 0.01219
save adata.txt x -ASCII
由于学习MATLAB时间不长,基础问题较多,呵呵

sogooda 发表于 2009-3-3 13:46

回复 5楼 auto_xy 的帖子

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

auto_xy 发表于 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);

ChaChing 发表于 2009-3-3 17:59

原帖由 auto_xy 于 2009-3-3 13:02 发表 http://www.chinavib.com/forum/images/common/back.gif
...aaa.xls是组态王得数据记录...
"组态王得数据记录"是什麽?

auto_xy 发表于 2009-3-10 11:45

回复 8楼 ChaChing 的帖子

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

[ 本帖最后由 auto_xy 于 2009-3-10 11:47 编辑 ]
页: [1]
查看完整版本: matlab数据转换问题