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' '' ''
如何把这些值转换为实数???
先用class看一下dataxy的类型,看起来像是字符串型。如果是字符型可以用str2num 旧版并无xlsread函数, 以前没用, 刚刚试了下!
无楼主aaa.xls的档案, 不确定其中相关格式为何?
随意产生数值格式, dataxy应该会空cell才是!
猜测楼主的excel档中的格式可能为文字格式或中文输入造成dataxy有东东!
不过亦可用cell2mat转换! 其实这个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) 还有一个问题
比如我得到得数据是x= 0.01219,把这个数据要记录到b.TXT文件里,可是在记录里显示1.2192115e-002
我怎么能把0.01219存到文件里啊?
我的代码如下:
x= 0.01219
save adata.txt x -ASCII
由于学习MATLAB时间不长,基础问题较多,呵呵
回复 5楼 auto_xy 的帖子
使用fprintf可以使用指定的格式来保存数据。回复 6楼 sogooda 的帖子
谢谢sogooda!save bdata.txt b -ascii
fid = fopen('bdata.txt','wt');
fprintf(fid,'%1.3f',b);
fclose(fid); 原帖由 auto_xy 于 2009-3-3 13:02 发表 http://www.chinavib.com/forum/images/common/back.gif
...aaa.xls是组态王得数据记录...
"组态王得数据记录"是什麽?
回复 8楼 ChaChing 的帖子
组态王获得PLC的数据,再通过组态王把它记录在了aaa.xls文件里:@P[ 本帖最后由 auto_xy 于 2009-3-10 11:47 编辑 ]
页:
[1]