| 查看: 2458 | 回复: 5 | |||
[交流]
【讨论】怎么样能高效些?
|
|
有个分段函数: | x + y, x>=0 and y >=0 | x^2 + y, x>=0 and y<0 f(x,y) = | x + y^2, x <0 and y >=0 | x^2 + y^2, x<0 and y <0 如果参数x,y只是单个值,这样用if语句就可以处理。 但如果x、y都是数组的话,怎么样处理呢?x=-10:10;y=-10:10; 如果扩展到x,y都是矩阵,有没有什么好办法?[x,y]=meshgrid([-10:0.1:10],[-10:0.1:10]) 我能想到的最原始的办法是 for .... for .... ... end end |
» 猜你喜欢
» 本主题相关价值贴推荐,对您同样有帮助:
【课件】李开复-Become A Good Speaker-教你如何掌握高效能演讲技巧
已经有66人回复
【求助】石墨烯复合材料电容器性能评价【有效期至2011年06月17日】
已经有3人回复
【分享】如何有效的开发自己的潜能【已搜索无重复】
已经有97人回复
【求助】如何计算能带有效质量?
已经有8人回复
【求助】如何选择较小配体实现高效Suzuki偶联反应,并且尽量降低自偶联可能性?
已经有9人回复
2楼2011-01-04 18:03:53
3楼2011-01-05 11:44:09
4楼2011-01-05 12:50:41
★ ★ ★
abingchem(金币+3):多谢xiegangmai 2011-01-05 13:37:08
robert2020(金币+3):辛苦了! 2011-01-11 11:04:32
abingchem(金币+3):多谢xiegangmai 2011-01-05 13:37:08
robert2020(金币+3):辛苦了! 2011-01-11 11:04:32
|
你用tic、toc命令测试一下,相对循环方式,当x,y越大,计算时间越省。 当x、y是单个数或一维数组时,用循环方式可能速度还快一些。 MATLAB6以后的版本中就没flops命令了,早期版本可以用flops统计浮点运算次数,而更新版本中已经不再提供该功能。 这是MATLAB帮助中的说明,我的MATLAB 2009b。 Remove all existing instances of flops. With the incorporation of LAPACK in MATLAB version 6, counting floating-point operations is no longer practical. |
5楼2011-01-05 12:53:05
6楼2011-01-05 13:43:05










回复此楼