心灯 发表于 2007-9-13 15:36

matlab的数组copy的精度问题

在matlab里,array editor 中变量的数值显示可以是long、short等其他类型,可是为什么采取复制的形式,粘贴到别的文本编辑器里只有short的形式呢? 请问这个可否设置成和array editor中精度一样? 自己琢磨了好一阵子,也没有找到设置的方法。请指点一下,多谢了。

action 发表于 2007-9-13 18:48

你直接把数据存成*.mat就可以了啊,这样精度不变的

心灯 发表于 2007-9-13 21:12

回复 #2 action 的帖子

谢谢,可是我想copy到word中去,小数点后保留足够多的位数,精度高一些... :(

octopussheng 发表于 2007-9-14 08:15

可以这样啊,如果你的数据组不是很长的话,可以将它在命令栏里面显示出来,从命令栏里面复制不就行了。

还有一种就是将mat转换为excel或者txt格式,这种我没有试过,呵呵

stephenhope 发表于 2007-9-14 10:30

可以尝试用 文件I/O fprintf() 到去出一个文本里面,精度可以通过格式参数来控制

心灯 发表于 2007-9-14 12:08

恩,昨天我就是用xlswrite写到了excel表格里面,然后从excel转到word中,自己感觉比较麻烦,所以就问一下,看看能不能直接从excel中转到word里。 多谢两位。

octopussheng 发表于 2007-9-14 15:06

回复 #6 心灯 的帖子

不知道你用的是那个版本的,我试过了,用7.0的话把数据改成long,可以直接复制到word里面的,显示仍然是long型数据!

心灯 发表于 2007-9-14 15:37

我的版本是:matlab2007a,到word2007.

xjzuo 发表于 2007-9-14 15:50

我用的6.5, 在array editor中选择你要的精度,可以直接复制到word(或其它文本编辑器)中, 且可以保持精度不变.
不知你操作时,为何会出现"精度只显示short的形式"?你再试试txt或rtf,看看是否显示正确.

[ 本帖最后由 xjzuo 于 2007-9-14 15:52 编辑 ]

octopussheng 发表于 2007-9-14 16:24

回复 #8 心灯 的帖子

应该是版本的问题啊!呵呵

eight 发表于 2007-9-15 10:15

我的是 2007a,试了一下,的确会出现心灯的问题。大家虽然用的版本不同,但是没有道理越做越差的,所以,我怀疑是大家的操作不一致。

之所以我和心灯遇到问题,我估计我俩是面对单元格的复制,而大家没有遇到问题,是因为面对内容的复制(即双击单元格,然后复制数据)。因此,大家不妨统一测试一下:
1. 设置 array editor 的精度为 long
2. 在命令窗口输入 a = randn(2,3) 回车
3. 在 workspace 双击 a 这个变量
4. 待出现 array editor 这个窗口后,拖动鼠标复制整个矩阵的内容
5. 粘贴到 word 中

看看在 word 中的数据是否 long 型吧

心灯 发表于 2007-9-15 14:25

回复 #11 eight 的帖子

对,复制整个数组变量的多个单元格,出现这个问题。你说的这个操作和我的一致。:victory:
如果双击某个long精度的单元格,进入单元格的编辑模式,那么再复制粘贴,这个就是long精度的。

心灯 发表于 2007-9-26 21:53

现在安装了matlab2007b,发现别管显示是什么形式,复制出来就都是1790.00002993925这样的长度了,符合我的要求。终于不用输出到excel,然后从excel中copy了。

eight 发表于 2007-9-26 22:14

原帖由 心灯 于 2007-9-26 21:53 发表 http://www.chinavib.com/forum/images/common/back.gif
现在安装了matlab2007b,发现别管显示是什么形式,复制出来就都是1790.00002993925这样的长度了,符合我的要求。终于不用输出到excel,然后从excel中copy了。

我还没有安装 2007b 的打算,呵呵

[ 本帖最后由 eight 于 2007-9-26 22:20 编辑 ]

心灯 发表于 2007-9-26 22:18

回复 #14 eight 的帖子

我是看到里面有些工具箱update了,而我可能用到其中的命令,所以想尝试一下。
页: [1]
查看完整版本: matlab的数组copy的精度问题