声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 2277|回复: 6

[综合讨论] 请教如何将混合数组读入excel

[复制链接]
发表于 2008-3-3 13:30 | 显示全部楼层 |阅读模式

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

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

x
最近碰到个问题,想向高手请教下:
我知道,将EXCEL的数据读入MATLAB的函数是xlsread.
假设有这样一个包含列名和数值的excel文件aa.xls:
编号        PV        PR1
2        65.77        454596.3
13        173249.9        724434.5
18        33923.2        566149.2
20        101458.2        544245.6
27        184064.2        535381.6
28        161390.9        571988.4
39        169845.9        879912.3
用xlsread读入到MATLAB里很简单:
[N ,headertxt]=xlsread('aa.xls') 即可,生成两个矩阵
N=
2        65.77        454596.3
13        173249.9        724434.5
18        33923.2        566149.2
20        101458.2        544245.6
27        184064.2        535381.6
28        161390.9        571988.4
39        169845.9        879912.3
headertxt =
'编号'        'PV'        'PR1'

可是当我想把这两个矩阵重新存成excel文件(包含列名和数据)时却遇到麻烦.
虽然我知道函数xlswrite用于把数据写入excel,可是写入的只能是一个数组,要么是数值数组N,要么是字符数组headertxt:
xlswrite('文件名',N)
xlswrite('文件名',headertxt)
没法将两个数组按照原来的格式同时写入excel,即使我将N和headertxt合并成一个混合数组:
rawdata = {headertxt,N} ,
再用xlswrite读入excel
xlswrite('文件名',rawdata)
也不行,什么也没有写入excel.

请问这是怎么回事,怎么解决这个问题,谢谢!

[ 本帖最后由 eight 于 2008-3-3 15:09 编辑 ]
回复
分享到:

使用道具 举报

发表于 2008-3-3 15:19 | 显示全部楼层
原帖由 kitty153153 于 2008-3-3 13:30 发表
最近碰到个问题,想向高手请教下:
我知道,将EXCEL的数据读入MATLAB的函数是xlsread.
假设有这样一个包含列名和数值的excel文件aa.xls:
编号        PV        PR1
2        65.77        454596.3
13        173 ...

不可能不行的,请 doc xlswrite,仔细阅读一下相关例子。另外, rawdata = {headertxt,N}  这个写法得到的结果是 rawdata 是一个 cell 数组,问题也许就出在这

[ 本帖最后由 eight 于 2008-3-3 15:21 编辑 ]
 楼主| 发表于 2008-3-3 16:33 | 显示全部楼层
原帖由 eight 于 2008-3-3 15:19 发表

不可能不行的,请 doc xlswrite,仔细阅读一下相关例子。另外, rawdata = {headertxt,N}  这个写法得到的结果是 rawdata 是一个 cell 数组,问题也许就出在这



我看过xlswrite这个函数的相关例子,他举了一个cell数组的例子:
d = {'Time', 'Temp'; 12 98; 13 99; 14 97};
得到的是一个4*2的cell数组,这时用xlswrite读入excel是没问题的.
可是我现在的问题是,我自己也觉得rawdata = {headertxt,N} 这个写法有问题,因为这时我得到的是一个2*1的cell数组,与原来应该有的维数是不同的,所以这时写不进excel。我现在试了很久,不知道怎么把这两个数组合并成正确维数的cell数组,所以想请版主高手们赐教,怎样解决这个问题。
发表于 2008-3-9 21:59 | 显示全部楼层
分开写进去就好了

[ 本帖最后由 eight 于 2008-3-10 16:51 编辑 ]
发表于 2008-3-13 10:59 | 显示全部楼层
对,分开写是可以实现的。
xlswrite('tep1.xls',headertxt,'sheet1','A1')
xlswrite('tep1.xls',N,'sheet1','A2')

评分

1

查看全部评分

 楼主| 发表于 2008-3-14 11:09 | 显示全部楼层
原帖由 faith924 于 2008-3-13 10:59 发表
对,分开写是可以实现的。
xlswrite('tep1.xls',headertxt,'sheet1','A1')
xlswrite('tep1.xls',N,'sheet1','A2')


谢谢faith924 ,我试了,可以行得通。:@)
发表于 2008-4-5 07:30 | 显示全部楼层
我正在学习
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

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

GMT+8, 2024-12-11 15:47 , Processed in 0.103530 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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