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);
end
end
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.
通过以上分析,可见矩阵内存预分配效果还是非常好的,可是必须指出并非全部的循环都可与量化的。
matlab矩阵内存预分配的更多相关文章
- MATLAB矩阵操作大全
转载自:http://blog.csdn.net/dengjianqiang2011/article/details/8753807 MATLAB矩阵操作大全 一.矩阵的表示 在MATLAB中创建矩阵 ...
- [置顶] [MATLAB技术贴]漫谈MATLAB矩阵转置
矩阵转置是matlab最基本的操作了,但这个基本操作,也是很多初学者容易出现问题的地方.本帖通过几个实例演示matlab矩阵转置的操作. 方法一:' 运算符与 .' 运算符 >>a ...
- Eigen ,MKL和 matlab 矩阵乘法速度比较
Eigen 矩阵乘法的速度 < MKL矩阵乘法的速度,MKL矩阵乘法的速度与matlab矩阵乘法的速度相差不大,但matlab GPU版本的矩阵乘法速度是CUP的两倍,在采用float数据类型 ...
- Matlab矩阵学习三 矩阵的运算
Matlab矩阵的运算 一.矩阵的加减 在matlab中,矩阵的加减和数的加减符号一样,都是"+"和”-“,不同的是两个进行运算的矩阵维度必须相同 二.数乘 三.乘法 矩阵乘法 ...
- Matlab矩阵学习二 矩阵的修改
Matlab矩阵的修改 一.元素修改 (1).矩阵扩充 (2)矩阵删除某行或某列 删除某行:A(m,:)=[] %删除A矩阵的第m行 删除某列: A(:,n)=[] %删除A矩阵的第n列 ...
- Matlab矩阵学习一 矩阵的创建
Matlab矩阵创建 1.直接输入数值创建 矩阵元素要用[ ] 括起来,";"代表一行结束,以下创建方式也是合法的,矩阵的元素可以是实数,也可以是复数,复数用a+bi表 ...
- matlab矩阵的表示和简单操作
原地址:http://www.cnblogs.com/Ran_Ran/archive/2010/12/11/1903070.html 一.矩阵的表示在MATLAB中创建矩阵有以下规则: a.矩阵元素必 ...
- [转]numpy线性代数基础 - Python和MATLAB矩阵处理的不同
转自:http://blog.csdn.net/pipisorry/article/details/45563695 http://blog.csdn.net/pipisorry/article/de ...
- Matlab 矩阵【Mark】
一.矩阵的表示在MATLAB中创建矩阵有以下规则: a.矩阵元素必须在”[ ]”内: b.矩阵的同行元素之间用空格(或”,”)隔开: c.矩阵的行与行之间用”;”(或回车符)隔开: d.矩阵的元素可以 ...
随机推荐
- scrapy 报错 no module named win32api 的解决方案
解决方案: 原因是缺少win32,到 http://sourceforge.net/projects/pywin32/files/ 找到对应的版本进行下载,直接安装即可 =============== ...
- why "Everything" is so fast?
Everything并不扫描整个磁盘,只是读取磁盘上的USN日志,所以速度飞快.但因此缺点也明显:1.只支持NTFS格式的分区,因为USN日志是NTFS专有的.在FAT.FAT32格式分区上无法使用E ...
- [转]Android--多线程之Handler
原文:http://www.cnblogs.com/plokmju/p/android_Handler.html 前言 Android的消息传递机制是另外一种形式的“事件处理”,这种机制主要是为了解决 ...
- Linux-HA实战(2)— TFS Nameserver HA之虚拟IP
对TFS的Nameserver做机器级别的HA通过虚拟IP机制就可以了,只需要一个Heartbeat就可以搞定,下面简单说下步骤. 操作系统:CentOS 6.4 x86_64 Heartbeat: ...
- e742. 加入标签的可拖动能力
This example demonstrates how to modify a label component so that its text can be dragged and droppe ...
- tpshop防止sql注入补丁
本补丁 由 QQ 木偶人 提供 首先在 www\Application\Common\Common\function.php 文件添加一个方法 /** * 转换SQL关键字 * * @param ...
- java Object类源代码详解 及native (转自 http://blog.csdn.net/sjw890821sjw/article/details/8058843)
package java.lang; public class Object { /* 一个本地方法,具体是用C(C++)在DLL中实现的,然后通过JNI调用.*/ private static na ...
- Win7下Netsh虚拟Wi-Fi
Netsh的字面意思是网络外壳,其实它是一个命令行实用程序,最初出现于Windows 2000操作系统,它可以帮助管理WINDOWS中的网络设置.此后,微软不断对它进行改进,给它增加了一些新的命令集. ...
- WAS启动报错Service failed to start. startServer return code = -1
http://www-01.ibm.com/support/docview.wss?uid=swg21368020 Problem(Abstract) Attempts to start IBM We ...
- linux rinetd 端口转发部署
linux下简单好用的工具rinetd,实现端口映射/转发/重定向 Rinetd是为在一个Unix和Linux操作系统中为重定向传输控制协议(TCP)连接的一个工具.Rinetd是单一过程的服务器,它 ...