您好,欢迎来到99网。
搜索
您的当前位置:首页matlab矩阵内存预分配

matlab矩阵内存预分配

来源:99网
matlab矩阵内存预分配

matlab矩阵内存预分配就意味着,划定⼀个固定的内存块,各数据可直接按“⾏、列指数”存放到对应的元素中。若矩阵中不预配置内存。则随着“⾏、列指数”的变⼤。MATLAB就必须不断地为矩阵找到新的“空的内存”,从⽽导致“建造矩阵”的速度⼤⼤下降。

Hilbert矩阵的数学描写叙述

Hilbert矩阵是著名的“坏条件”矩阵,当中其第(i,j)元素的表达式是a(i,j)=1/(i+j-1)。

代码⽐較:

% 2014-11-8

% Hilbert矩阵的数学描写叙述

clear

tic %启动秒表计时K=1000;

for ii=1:K %下⾯创建(K*K)矩阵 for jj=1:K

A1(ii,jj)=1/(ii+jj-1); end

end

toc %输出第⼀种⽅法耗时

tic

A2=zeros(K,K); %给矩阵预先配置内存空间for ii=1:K

for jj=1:K

A2(ii,jj)=1/(ii+jj-1); endend

toc %另外⼀种⽅法耗时

tic

II = repmat(1:K,K,1); %在矩阵的每⾏元素⾥设置“列指数”JJ = II'; %在矩阵的没列元素⾥设置“⾏指数”A3 = 1./(II+JJ-1); %採⽤数组除。获得Hilbert矩阵toc %第三中⽅法耗时

输出结果:

Elapsed time is 1.903465 seconds.Elapsed time is 0.010740 seconds.Elapsed time is 0.037265 seconds.

通过以上分析,可见矩阵内存预分配效果还是⾮常好的,可是必须指出并⾮全部的循环都可与量化的。

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- 99spj.com 版权所有 湘ICP备2022005869号-5

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务