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.矩阵的元素可以 ...
随机推荐
- MSSQL跨服务器查询
1.因为此功能服务器安全配置的一部分而被关闭,所以我们先开启 reconfigure reconfigure 2.如果需要关闭,执行 reconfigure reconfigure 3.查询语句 SE ...
- MFC函数——CWnd::OnCreate
CWnd::OnCreate afx_msg int OnCreate( LPCREATESTRUCT lpCreateStruct ); 返回值: OnCreate必须返回0以继续CWnd对象的创建 ...
- Java设计模式(13)模板模式(Template模式)
Template模式定义:定义一个操作中算法的骨架,将一些步骤的执行延迟到其子类中. 其实Java的抽象类本来就是Template模式,因此使用很普遍.而且很容易理解和使用,我们直接以示例开始: pu ...
- R语言 ggplot2 画平滑图
library(splines) library(ggplot2) dt1 <- structure(list(Age = structure(c(1L, 1L, 1L, 1L, 1L, 1L, ...
- T-SQL 错误状态
MS Windows Error Messages Code Error Message 0 操作成功完成. 1 功能错误. 2 系统找不到指定的文件. 3 系统找不到指定的路径. 4 系统无法打开文 ...
- Ubuntu中基于QT的系统网线连接状态的实时监视
1.必要准备 需包: #include <QNetworkInterface> 2.实现获取当前的网线连接状态 以下是自己在网络上搜到的一个解决方法,且没有加入iface.flags(). ...
- (笔记)Mysql命令mysqladmin:修改用户密码
mysqladmin命令用于修改用户密码. mysqladmin命令格式:mysqladmin -u 用户名 -p 旧密码 password 新密码 1) 给root加个密码ab12首先在DOS下进入 ...
- MyBatis SqlSessionDaoSupport实例
在前面的章节中,我们已经讲到了基本的 mybatis 操作,但都是基于 mapper 隐射操作的,在 mybatis3 中这个 mapper 接口貌似充当了以前在ibatis 2中的 DAO 层的作用 ...
- Maven项目文档
本教程学习如何一步到位地创建应用程序的文档.因此现在开始我们进入到 C:\MVN 创建 java 应用程序项目:consumerBanking. 进入到项目文件夹中执行以下命令 mvn 命令. C: ...
- (转)最简单的基于FFmpeg的内存读写的例子:内存播放器
ffmpeg内存播放解码 目录(?)[+] ===================================================== 最简单的基于FFmpeg的内存读写的例子系列文章 ...