通过对变量预分配内存可以大大降低计算耗时,下面举例说明。

1.没有预分配变量内存情况

clear

n = 2000;

tic;

for i=1:n

for j=1:n

a(i,j) = 1;

end

end

time = toc;

disp(['未预分配内存下计算时间为',num2str(time),'秒'])

计算时间为:

未预分配内存下计算时间为3.3465秒

2.预分配变量内存情况

clear

n = 2000;

tic;

a = zeros(n,n,'double');

for i=1:n

for j=1:n

a(i,j) = 1;

end

end

time = toc;

disp(['预分配内存下计算时间为',num2str(time),'秒'])

计算时间为:

预分配内存下计算时间为0.058691秒

可以看出时间大大降低。

3.预分配变量内存方式

a = zeros(n,n,'double') 和 a(n,n) = 0 以及 a = zeros(n,n) 是不一样的,第一种方式消耗时间最小。

>> clear

n = 40000;

tic;

a = zeros(n,n,'double');

time = toc;

disp(time)

0.0023

>> clear

n = 40000;

tic;

a(n,n) = 0;

time = toc;

disp(time)

0.0036

>> clear

n = 40000;

tic;

a = zeros(n,n);

time = toc;

disp(time)

0.0076

matlab 动态分配内存,[Matlab科学计算之高效编程] 1. 预分配内存相关推荐

  1. matlab在linux效率高吗,取代matlab, Linux下科学计算环境的搭建

    不久前,学姐发给我一程序,我开虚拟机跑matlab算了一边,虽然我给了虚拟的XP 512M的内存,还是慢的要命.足足等了30s才出来结果.这还是只算了一遍,如果是算两层循环,96*2遍的话,我去新街口 ...

  2. matlab 与 python 在科学计算中的区别比较

    本文以求解拟一维喷管流动为例,比较两者在科学计算中的区别. 感受:matlab矩阵实验室在求解矩阵方面具有得天独厚的优势,尤其是在矩阵之间的运算方面.求解方程过程中,能够明显感觉到编程给人带来的快感, ...

  3. matlab 蔡旭晖,科学计算与MATLAB语言

    什么叫计算? 什么叫科学计算? 科学计算与MATLAB语言的关系 MATLAB语言的主要功能 课程的学习目标 课程的主要内容 1.什么叫计算? 在汉语中,"计算"一词的含义: 谋划 ...

  4. 科学计算与matlab语言期末答案,科学计算与MATLAB语言期末答案

    科学计算与MATLAB语言期末答案 更多相关问题 "来而不往非礼也"符合人机交往的( )原则 若MD20中存放数据为-100.5,执行程序段"L MD20/RUD+/T ...

  5. python科学计算和可视化编程

    刚开始接触机器学习,要用到python语言来做辅助工具,就抽空学了一下,话说python这个脚本语言上手还是很容易的,单就用于科学计算和数据分析来说,掌握numpy.matplotlib等科学计算包可 ...

  6. 科学计算与matlab语言期末答案,科学计算与MATLAB语言答案

    [单选题]用于定义按钮被单击的响应的属性是( ). [判断题]调用fplot3函数绘制空间曲线时,需要先计算曲线上各点的坐标. [单选题]当实验或测试所获得的样本数据有误差时,适合用来估算数据的方法是 ...

  7. numpy 最大值_使用 NumPy 让你的 Python 科学计算更高效

    具体的原理我也不大懂,简单理解就是Numpy的计算效率更高一些. Numpy里有两个对象: ndarray,实际上就是多维数组的含义,在Numpy数组中,维数称为秩(rank),一维数组的秩为 1,二 ...

  8. python科学计算和可视化编程软件_python科学计算与可视化

    一.Numpy 库 NumPy(Numerical Python) 是 Python 语言的一个扩展程序库,支持大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库. 引用: import ...

  9. 【内存泄漏】使用memwatch高效排查代码的内存泄漏问题

    本文将给大家介绍,如何使用一个小的开源组件[memwatch]排查有可能出现[内存泄漏]的代码. 先上一段测试代码,里面是包括一些内存操作错误的代码: //main.c#include <std ...

最新文章

  1. eclipse安装Log4E插件以及简单使用
  2. Java中操作字符串的工具类-判空、截取、格式化、转换驼峰、转集合和list、是否包含
  3. 解析C/C++的预处理指令
  4. poj2480(利用欧拉函数的积性求解)
  5. 您的框架有多可扩展性?
  6. 解释性语言和汇编性语言对比
  7. Memcache缓存系统
  8. Android 8.0 学习(4)---Android通用内核
  9. java 画金刚石_帮忙改错!java 画金刚石
  10. idea上一步下一步快捷键_【MySQL】一步一步的教你在windows下安装MySQL5.7
  11. python读取二进制文件_Python读写二进制文件
  12. 三点估算与类比估算_通过将东西塞进盒子来估算
  13. list去重及求两个list中元素的重复率
  14. matlab 线性拟合polyfit_Matlab实现线性回归(直线拟合)
  15. 电路分析第二章 二端口网络
  16. 同一目录下批处理执行Word宏
  17. 存储器国产化为何选3D NAND作为突破口?
  18. npm安装electron报RequestError: socket hang up错误解决方法
  19. 大数据 -- java基础16 网络编程 TCP UDP
  20. linux系统编程课程改革,项目驱动的Linux操作系统课程教学改革

热门文章

  1. 开启数据科学职业生涯的8个基本技巧
  2. 手把手教您解决90%的自然语言处理问题
  3. 云海再获中国第一 OpenStack社区Xena版本新特性快来划重点
  4. IT 实力较量:决战超级数据中心之巅
  5. 用大白话彻底搞懂 HBase RowKey 详细设计
  6. “出道” 5 年采用率达 78%,Kubernetes 的成功秘诀是什么?
  7. 详解异构计算FPGA基础知识
  8. Kube-OVN:基于OVN的开源Kubernetes网络实践
  9. 微服务精华问答:什么是微服务架构中的DRY?| 技术头条
  10. 高晓松侃5G!2019开年大讲揭示运营商的秘密