找回密码
 注册
LabVIEW+单片机学习套件全套教程资料下载[免费]LabVIEW论坛精华列表贴USB0816数据采集卡《LabVIEW宝典》
LabWindows/CVI论坛精华贴NET0816以太网数据采集卡RC0210远程设备授权系统 关闭关停锁定打开设备 户外分布式数据采集
NET1624低速高精度以太网数据采集卡WIFI0824SD无线WIFI网络数据采集卡脱机运行 SD存储 小尺寸微型 串口采集远程采集 安卓 手持移动采集 纪录仪
查看: 2600|回复: 9

3维数组转2维数组效率(3-Dim to 2-Dim)

[复制链接]
发表于 2008-1-23 23:17:36 | 显示全部楼层 |阅读模式
程序中必须用到这个功能,我写了一个,如果页超过10000时发现效率不高.
通俗的解释一下:
3维:比如一个笔记本有很多页(1维),每页有很多行和很多列数据(2维),但每页的行数不一样,我要做的是把每一页的所有行都取下来,然后放到一页里面去.
2维:笔记本的一页内容,有很多行和很多列数据.
请参考下图.

Labc

[ 本帖最后由 labc 于 2008-1-23 23:20 编辑 ]

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
 楼主| 发表于 2008-1-24 14:17:20 | 显示全部楼层
还有一种方法,但是必须重新处理2维数组中的空行,还是效率不高.
详见下图.

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
回复 顶

使用道具 举报

发表于 2008-1-24 14:21:50 | 显示全部楼层
回复 顶

使用道具 举报

 楼主| 发表于 2008-1-24 15:18:17 | 显示全部楼层
我提到的第二种方法就是rashape,但有很多空行需要去掉,几千行可能没什么,如果从好几万行中删除随机分布的空行且不能改变其他行之间的相对位置(也就是说不能通过排序的方法将空行集中的一块儿之后再处理).

Labc

[ 本帖最后由 labc 于 2008-1-24 21:17 编辑 ]
回复 顶

使用道具 举报

发表于 2008-1-24 16:42:53 | 显示全部楼层
你贴上来的这个程序好像有点问题.既然检查每一行,你的程序运行的结果是,检测到空就停止该页检查??
回复 顶

使用道具 举报

 楼主| 发表于 2008-1-24 21:02:31 | 显示全部楼层
没有问题.你说的也没错儿.
循环用来获取每一页的非空的行数,然后将这个行数输出之删除数组元素.vi.你可以自己试一下.
我用的是一楼的方法,当页数有数万页,每一页有不到10行的数据是就会发现效率相当低.
很是郁闷啊.

Labc
回复 顶

使用道具 举报

发表于 2008-1-25 09:51:29 | 显示全部楼层
又试了一下,上面的程序,在每一页只能检查一次空行,如有多个空行,则空行后的数据会忽略.
我试了10000多页的,由随机数产生的12行5列10100页的三维数组,其中,每一页中随机加了2行空行.
运行起来平均14S.前提是基于数据是在ANSIC中是字符而非数值(如"adfd",非"12.3555"),如果是数值,那么就可以用矩阵处理,速度就快
回复 顶

使用道具 举报

 楼主| 发表于 2008-1-25 10:22:56 | 显示全部楼层
sorry,可能我没有说清楚,每一页空行全部都在页尾,但行数不确定,但每一页的总行数有限制,肯定不大于行数最多的那一页.
例如:
第一行:11 aa bb cc dd
第二行:22 df fghh rge  gre
第三行:空行(所有元素均是空格)
...

三维数组某些列是数字,但所有元素均是用字符串的形式存放的,昨天处理了70000多条,花了将近1个小时.
你说的矩阵的方法似乎可以处理我的问题,希望能够给出更好的处理方法.

Labc

[ 本帖最后由 labc 于 2008-1-25 10:26 编辑 ]
回复 顶

使用道具 举报

howjiajie 该用户已被删除
发表于 2008-1-26 23:11:36 | 显示全部楼层
回复 顶

使用道具 举报

 楼主| 发表于 2008-1-29 16:56:20 | 显示全部楼层

回复 8# 的帖子

今天突然想到我要处理的这个3维数组内部其实是按一定顺序排列的,因此reshape成2维数组后将其中的一列排序,要求非空的行和列的相对位置不能变(类似Excel的扩展排序),这样就可以把空行集中到一块儿后再处理,速度快了n倍,一个小时的任务,不到3秒就完成了,呵呵.

Labc
回复 顶

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|cpubbs论坛. ( 粤ICP备09171248号 )

GMT+8, 2026-9-30 11:25 , Processed in 0.052965 second(s), 14 queries , Gzip On, File On.

Powered by Discuz! X5.0

© 2001-2026 Discuz! Team.

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