Matlab 版 (精华区)
发信人: zjliu (秋天的萝卜), 信区: Matlab
标 题: [合集]求集合的交集和补集
发信站: 哈工大紫丁香 (2003年05月04日22:04:05 星期天), 站内信件
────────────────────────────────────────
few (红叶) 于 2003年05月04日13:51:09 星期天 说道:
有没有函数?
────────────────────────────────────────
zjliu (秋天的萝卜) 于 2003年05月04日14:00:22 星期天 说道:
直接的函数好像没有,你自己写个小程序吧
────────────────────────────────────────
few (红叶) 于 2003年05月04日14:04:36 星期天 说道:
好的,最怕编出来后发现原来有现成的,而且我感觉自己编的程序运行速度不如调用函数
快。matlab要想加快运算速度应该注意那些操作【 在 zjliu (秋天的萝卜) 的大作中提到
────────────────────────────────────────
Marigold (SARS燃烧的岁月) 于 2003年05月04日14:11:51 星期天 说道:
不可能吧,对于这种简单运算
────────────────────────────────────────
zjliu (秋天的萝卜) 于 2003年05月04日14:14:01 星期天 说道:
关于运算速度,看看如下一段话:
一个程序运行快慢,有很多因素决定,最主要的是算法,简炼而优美
的的数学公式胜过100遍的优化。能从算法上改进,才能比别人有根
本的优势。计算机也很重要,以前我总把自己用的PC看成万能的加
以崇拜,对UNIX嗤之以鼻,结果当自己真正开始算起来,才知道差
别有多大。搞大型数值计算的,没有好的工作站或者并行系统,就输
在了起跑线上了。然后是程序的优化,看看变量是否占用太多内存,
看看是否有功能重复的模块或者计算,经常的是用牺牲内存来换取速
度,具体取舍,具体需要来决定。用profile看看哪些语句占用时间最
多,然后把核心部分进行优化。
如果是使用Matlab,使用vectorization和矩阵整体操作的代码要比大量
的for循环快很多,eval/inline函数如果出现在核心循环,也会让速度下
降几时倍的。
【 在 zjliu (秋天的萝卜) 的大作中提到
────────────────────────────────────────
few (红叶) 于 2003年05月04日14:19:44 星期天 说道:
比如说求集合的补集,好像只能队第一个集合的每一个元素,都在第二个集合中去搜索一
遍,这样做的代价是m*n,代价也不小【 在 zjliu (秋天的萝卜) 的大作中提到: 】
────────────────────────────────────────
few (红叶) 于 2003年05月04日14:20:31 星期天 说道:
错了,是交集
────────────────────────────────────────
zjliu (秋天的萝卜) 于 2003年05月04日14:20:44 星期天 说道:
搜索元素建议你用find函数
────────────────────────────────────────
Marigold (SARS燃烧的岁月) 于 2003年05月04日14:28:38 星期天 说道:
我不懂matlab,不过语言应该是相通的:
如果你集合的元素少,或者在内存可以接受范围内,你可以把全集
映射到一个数组,某个集合含有某个元素,只要包含这个元素对应
的数组元素的序号即可。这样用空间换时间可以快不少。
────────────────────────────────────────
hjdwg (江湖最后一个大佬) 于 Sun May 4 14:32:39 2003) 说道:
help INTERSECT
heihei
────────────────────────────────────────
zjliu (秋天的萝卜) 于 2003年05月04日14:35:43 星期天 说道:
高!
还有SETXOR
────────────────────────────────────────
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:2.487毫秒