找回密码
 注册
Simdroid-非首页
楼主: bainhome

【原创】:新年礼物---戏说arrayfun系列函数

[复制链接]
发表于 2011-1-7 17:27:12 | 显示全部楼层 来自 河北廊坊
20# bainhome
恩,的确,loren对函数的理解比较深刻,对很多用法掌握的很灵活
对函数用法的彻底全面的掌握是今后我提升的一大空间,今天看到sprintf的用法
才发现在一个不起眼的地方的

  1. Field width
  2. Minimum number of characters to print. Can be a number, or an asterisk (*) to refer to an argument in the input list. For example, the input list ('%12d', intmax) is equivalent to ('%*d', 12, intmax).
复制代码
其实很有用的

评分

1

查看全部评分

回复 不支持

使用道具 举报

发表于 2011-12-25 08:55:31 | 显示全部楼层 来自 辽宁大连
Simdroid开发平台
太给力了!  强烈推荐置顶!!!
回复 不支持

使用道具 举报

发表于 2015-5-24 19:46:01 | 显示全部楼层 来自 北京
rocwoods 发表于 2011-1-6 22:23
纠正一个错误,我之前关于arrayfun效率比循环低很多的结论很草率。
就自身的效率而言,arrayfun应该是不输 ...

MATLAB最近的版本对匿名函数调用效率提升不少啊!还是上面的代码,在2015a下结果如下:
  1. clear
  2. f = @(x) x^2;
  3. x = 1:1000000;
  4. tic;z1 = arrayfun(f,x);toc
  5. z2 = zeros(size(z1));
  6. tic;for k =1:1000000;z2(k) = f(x(k));end;toc
  7. isequal(z1,z2)
  8. Elapsed time is 2.360901 seconds.
  9. Elapsed time is 0.312959 seconds.
  10. ans =
  11.      1
复制代码

看来arrayfun对匿名函数的加速效果跟循环比又处于下风了。。。
回复 不支持

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-3-29 03:10 , Processed in 0.027000 second(s), 9 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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