matlab程序算法复杂性计算,matlab程序优化 (期权计算为例)

最近有人问我编写matlab程序要注意什么...?

下面就写一些

首先我开始编写matlab程序的时候也不怎么注意它的效率问题,能出结果就行了,呵呵管那多干什么

不是给自己找事的。可是随着遇到的问题越来越复杂,matlab的计算时间越来越长,有时难以忍受,

就专向C/C++了,C/C++似乎比matlab复杂多了,但效率很高,后来又接触到了一些程序优化,算法优化

实在是问题复杂不得不作了,matlab(内核)应该是用C写的,对C++ new delet感触很多... 对matlab

的编程也有所感悟.

怎么让你的matlab效率更高呢?

matlab是一中脚本语言,基本上是解释一行 执行一行....  变量的最大规模取决于你的内存大小,会不

使用虚拟内存呢,不知道(可能不会)

主要从两个方面来说,程序的结构和算法的选择

1.变量使用前一定要初始化。

for ...

x[i]=..

end

如果你没有初始化,x(1)给值的时候 解释器不知道x是多大的数组.... x是1X1的

当x(2)的时候, x又会变成什么样? 可能你不在乎这个,但是这里解释器会浪费许多

时间.

所以一般初始化;

x=zeros(n,m);

2.尽量使用矩阵计算, 少使用for.. while 等循环,

循环内部也要尽量不使用if, IO操作.

3.算法的选择,这是提高效率的主要方面,但是对你的要求也最高,

最要能熟悉matlab的命令,例

temp1=min(abs(temp(:,3)));

n=find(temp(:,3)==temp1);

找出abs(temp)最小的那个的位置,就可以直接使用

[temp, index]=min(abs(temp(:,3));

就可以返回最小元素所在的位置.

4.算法的使用例如

%find min result start

w=bls*0.8:0.001:bls*1;

w_num=size(w,2);

temp_bls=zeros(1,w_num);

for k=1:w_num

temp_bls(k)=blsprice(stk_temp(

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值