matlab提高运行速度
2015-04-29 15:48
344 查看
(1)为矩阵变量预制内存而不是动态分配
慢:
for k = 2:1000
x(k) = x(k-1) + 5;
end
快:
x = zeros(1, 1000);
for k = 2:1000
x(k) = x(k-1) + 5;
end
在程序一开始就为所有大的矩阵变量预制存储单元。
(2)将循环语句改为向量形式
慢:
For ii=1:100
Square(ii)=ii^2;
End
快:
ii=1:100;
Square(ii)=ii^2;
!!!运行速度从慢到快依次为:for loop → for loop+preallocate with zeros function → vectorize
(3)逻辑数组可以用来将某个数组的子数组进行矢量化运算,避免循环,加快运行速度:
a=[1 2 3;4 5 6;7 8 9];
b=a>5
a(b)=sqrt(a(b)) %将a中大于5的数字求平方根
a(~b)=a(~b).^2 %将a中小于等于5的数字求平方
输出结果:
b =
0 0 0
0 0 1
1 1 1
a =
1.0000 2.0000 3.0000
4.0000 5.0000 2.4495
2.6458 2.8284 3.0000
a =
1.0000 4.0000 9.0000
16.0000 25.0000 2.4495
2.6458 2.8284 3.0000
(4)matlab profiler(运行和计时)
根据每行代码所耗费的时间分别改进。
2.生成随机数时,生成均匀分布的函数rand(x,y)的速度比生成其它分布的随机数的函数速度快的多,大概10倍左右;当要生成除正态和均匀分布以外的随机数时,自定义函数要比通用函数快的多,比如生成指数分布随机数,exprnd(1,1,20)速度是random(‘exp’,1,1,20)的40多倍。
慢:
for k = 2:1000
x(k) = x(k-1) + 5;
end
快:
x = zeros(1, 1000);
for k = 2:1000
x(k) = x(k-1) + 5;
end
在程序一开始就为所有大的矩阵变量预制存储单元。
(2)将循环语句改为向量形式
慢:
For ii=1:100
Square(ii)=ii^2;
End
快:
ii=1:100;
Square(ii)=ii^2;
!!!运行速度从慢到快依次为:for loop → for loop+preallocate with zeros function → vectorize
(3)逻辑数组可以用来将某个数组的子数组进行矢量化运算,避免循环,加快运行速度:
a=[1 2 3;4 5 6;7 8 9];
b=a>5
a(b)=sqrt(a(b)) %将a中大于5的数字求平方根
a(~b)=a(~b).^2 %将a中小于等于5的数字求平方
输出结果:
b =
0 0 0
0 0 1
1 1 1
a =
1.0000 2.0000 3.0000
4.0000 5.0000 2.4495
2.6458 2.8284 3.0000
a =
1.0000 4.0000 9.0000
16.0000 25.0000 2.4495
2.6458 2.8284 3.0000
(4)matlab profiler(运行和计时)
根据每行代码所耗费的时间分别改进。
2.生成随机数时,生成均匀分布的函数rand(x,y)的速度比生成其它分布的随机数的函数速度快的多,大概10倍左右;当要生成除正态和均匀分布以外的随机数时,自定义函数要比通用函数快的多,比如生成指数分布随机数,exprnd(1,1,20)速度是random(‘exp’,1,1,20)的40多倍。
相关文章推荐
- matlab提高运行速度的两个小方法
- 提高matlab运行速度
- 提高matlab运行速度的心得
- 提高matlab运行速度和节省空间的心得
- MATLAB 与C混合编程:通过mex提高运行速度
- 三个小技巧帮你提高MATLAB代码运行速度
- matlab运行出现“变量似乎会随着迭代次数改变而变化,请预分配内存,以提高运行速度”问题
- 提高matlab运行速度的心得
- 【转】提高matlab程序的运行速度
- 【RoR win32】提高rails new时bundle install运行速度
- 数学建模_使用ginput函数提高CV模型程序的运行速度
- Android Studio的运行加速和优化,速度最快提高10倍。
- 怎样提高php运行速度?
- 优化JVM参数提高eclipse运行速度
- 如何提高电脑运行速度(解决卡机)
- [转载]提高Python程序的运行速度_李小红_新浪博客
- 提高Eclipse的运行速度 去掉JPA这个Eclipse 插件
- matlab、opencv、opencv+gpu滤波运行速度的比较
- 整理C盘提高电脑运行速度
- 四步清理Windows系统盘无用垃圾(提高运行速度)