找回密码
 注册
Simdroid-非首页
查看: 70|回复: 2

matlab有没有在有序数组中二分查找的函数?

[复制链接]
发表于 2012-8-5 00:46:31 | 显示全部楼层 |阅读模式 来自 上海浦东新区
比如我想在
  1. xs = [1 2 3 6 7 8 10 23 45];
复制代码
中查找第一个大于等于10的数,现在我只知道这样
  1. idx = find(xs>=10,'first',1);
复制代码
但find的时间复杂度是O(n)的,如果二分查找只需O(log n)
发表于 2012-8-6 08:27:43 | 显示全部楼层 来自 上海闵行区
Simdroid开发平台
matlab的find函数是精心优化过的,倘若不能满足要求的话,建议找找C/Fortran写的二分查找代码,编译成mex文件供matlab调用
回复 不支持

使用道具 举报

发表于 2012-8-7 13:53:51 | 显示全部楼层 来自 北京
看下这个对你有没有帮助。
http://undocumentedmatlab.com/bl ... ed-helper-function/
回复 不支持

使用道具 举报

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

本版积分规则

Simapps系列直播

Archiver|小黑屋|联系我们|仿真互动网 ( 京ICP备15048925号-7 )

GMT+8, 2024-10-2 02:35 , Processed in 0.030230 second(s), 11 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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