Matlab高级教程_第四篇:Matlab高级函数_关键词:arrayfun
- % 定义一个句柄并用这个句柄求值
- h = @sin;
- h(3)
- % % 命令窗口返回内容
- % h(3)
- % ans =
- % 0.1411
- %定义一个完整句柄,@参数+表达式的形式,并给句柄传参
- h1 = @(x)mean(x);
- x = [1 2 3 4 5];
- h1(x)
- % % 命令窗口返回内容
- % h1(x)
- % ans =
- % 3
- %arrayfun的简单应用
- h1 = @(x)mean(x);
- x = [1 2 3 4 5];
- % 可以用句柄的形式传入第一个形参位置,也可以直接@句柄内容,这两个是等价的
- arrayfun(@(x)mean(x),x)
- arrayfun(h1,x)
- % % 命令窗口返回内容
- % ans =
- % 1 2 3 4 5
- % ans =
- % 1 2 3 4 5
- %arrayfun对Name,value的要求(只举例格式化形式'UniformOutput')
- x = [1 2 3 4 5];
- % 如果选择为false以元胞的形式返回值
- arrayfun(@(x)mean(x),x,'UniformOutput',false)
- % 如果选择为true以数组的形式返回值
- arrayfun(@(x)mean(x),x,'UniformOutput',true)
- % % 命令窗口返回内容
- % ans =
- % 1×5 cell 数组
- % {[1]} {[2]} {[3]} {[4]} {[5]}
- % ans =
- % 1 2 3 4 5
- % arrayfun对于提升运算效率的帮助
- % 不采用arrayfun形式的运算
- tic;
- x = magic(3000)*magic(3000);
- toc;
- % 时间已过 3.125284 秒。
- % 采用arrayfun形式的运算
- tic;
- arrayfun(@(n)magic(n)*magic(n),3000,'UniformOutput',false);
- toc;
- % 时间已过 3.125284 秒。
我们分采用运算的时候,第二遍比第一遍快,主要是MATLAB的内存预分配机制。
注意采用arrayfun值是标量形式必须选择false
arrayfun主要是为了打开并行运算库而设计
我们打开并行运算
- % arrayfun对于提升运算效率的帮助
- % 不采用arrayfun形式的运算
- tic;
- x = magic(5000)*magic(5000);
- toc;
- % 时间已过 14.077466 秒。
- % 采用arrayfun形式的运算
- tic;
- arrayfun(@(n)magic(n)*magic(n),5000,'UniformOutput',false);
- toc;
- % 时间已过 13.423996 秒。
我们发现运算效率提升不太明显,因为arrayfun针对标量的运算方式,如果对于像魔方矩阵,可以用meshgrid分解的方式提升更明显
Matlab高级教程_第四篇:Matlab高级函数_关键词:arrayfun的更多相关文章
- Matlab高级教程_第四篇:Matlab高级函数_关键词:drawnow,addpoints,animatedline,getpoints
0. MATLAB真实航母基本的工具,其中的函数/工具不计其数,而且有些函数/工具非常的炫酷.在MATLAB第四篇章把平时工作中用到的些许函数进行使用的讲解 主题1.:drawnow 解释:更新图窗并 ...
- Matlab高级教程_第四篇:白噪声的MATALB生成方式
1. 白噪声主要是高斯白噪声. 2. 为什么是高斯白噪声? 高斯白噪声:1)这个噪声它是一个随机信号.2)“白”是指其功率谱的常数,这样他的自相关函数是狄拉克函数(冲激函数),由于它的自相关函数是冲激 ...
- Python笔记_第四篇_高阶编程_进程、线程、协程_5.GPU加速
Numba:高性能计算的高生产率 在这篇文章中,笔者将向你介绍一个来自Anaconda的Python编译器Numba,它可以在CUDA-capable GPU或多核cpu上编译Python代码.Pyt ...
- 微信小程序教程(第四篇)
小程序开发基本框架及其限制与优化 开发基本框架(MINA框架) └─ Project-folder/ ·································· 项目所在目录 ├─ page ...
- (转) SpringBoot非官方教程 | 第二十四篇: springboot整合docker
这篇文篇介绍,怎么为 springboot程序构建一个Docker镜像.docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从Apache2.0协议开源.Docker 可以让开发者打包他们的 ...
- SpringBoot非官方教程 | 第二十四篇: springboot整合docker
转载请标明出处: 原文首发于:https://www.fangzhipeng.com/springboot/2017/07/11/springboot24-docker/ 本文出自方志朋的博客 这篇文 ...
- 史上最简单的 SpringCloud 教程 | 第十四篇: 服务注册(consul)
转载请标明出处: 原文首发于:https://www.fangzhipeng.com/springcloud/2017/07/12/sc14-consul/ 本文出自方志朋的博客 这篇文章主要介绍 s ...
- Python笔记_第四篇_高阶编程_再议装饰器和再议内置函数
1. 概述: 我们在前面用了很多的装饰器这个工具的方法.这个位置要系统的讲一下装饰器. 1.2 为什么需要装饰器. 装饰器本质是一个Python函数,它可以让其他函数在不需要任何代码变动的前提下增加额 ...
- Python笔记_第四篇_高阶编程_实例化方法、静态方法、类方法和属性方法概念的解析。
1.先叙述静态方法: 我们知道Python调用类的方法的时候都要进行一个实例化的处理.在面向对象中,一把存在静态类,静态方法,动态类.动态方法等乱七八糟的这么一些叫法.其实这些东西看起来抽象,但是很好 ...
随机推荐
- apicloud - addEventListener 接收不到 sendEvent 的解决方法
要将 api.addEventListener 放在最前面 , 减少受到其他事件的影响 apiready = function () { api.addEventListener({ ...
- 颜色设置 <color name="white">#FFFFFF</color><!--白色 -->
<?xml version="1.0" encoding="utf-8"?> <resources> <color name=&q ...
- C++基础--引用做函数参数
引用,简单粗暴的解释叫做别名,简单粗暴的例子就是,我是熊叫大雄,但是很多时候别人不叫我熊叫大雄,会叫我大雄,粤语地区朋友爱叫我阿雄,有人叫我雄,所以,熊叫大雄这个变量的值是我,雄.大雄.阿雄是熊叫大雄 ...
- Python 官方推荐的一款打包工具
译者:Jiong 链接: https://robots.thoughtbot.com/how-to-manage-your-python-projects-with-pipenv 在thoughtbo ...
- python2和python3共存
有很多朋友有这样的烦恼,自己的电脑里装了python2和python3,但是有些时候可能出现只能用python2或python3的情况,这个时候就蒙圈了,不知所措啊,我也是经过了这样的无奈,最后终于找 ...
- zuul网关配置
静态路由:通过url匹配映射地址进行静态路由(只会把到达zuul网关的请求按照发送,并把匹配请求地址 /common-service/ ->http://localhost:9001/) zuu ...
- 【Tensorflow】(tf.Graph)和(tf.session)
图(tf.Graph):计算图,主要用于构建网络,本身不进行任何实际的计算. 会话(tf.session):会话,主要用于执行网络.所有关于神经网络的计算都在这里进行,它执行的依据是计算图或者计算图的 ...
- ubuntu下面嘚一些常用基本命令
1)环境变量配置: 9 ~/.bashrcor ~/.bash_profile. sudo gedit ~/.bashrc 第一种sudo vim ~/.bashrc export PYTHONPAT ...
- markdown使用介绍
一.标题,前面加#,加一个 一级标题,两个二级标题,以此类推. 一级标题 二级标题 三级标题
- 如何用Python统计《论语》中每个字的出现次数?10行代码搞定--用计算机学国学
编者按: 上学时听过山师王志民先生一场讲座,说每个人不论干什么,都应该学习国学(原谅我学了计算机专业)!王先生讲得很是吸引我这个工科男,可能比我的后来的那些同学听课还要认真些,当然一方面是兴趣.一方面 ...