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调用类的方法的时候都要进行一个实例化的处理.在面向对象中,一把存在静态类,静态方法,动态类.动态方法等乱七八糟的这么一些叫法.其实这些东西看起来抽象,但是很好 ...
随机推荐
- Day 18:SequenceInputStream、合并切割mp3、对象输入输出流对象
SequenceInputStream用例题讲述用法 需求:1.把a.txt与b.txt 文件的内容合并 2.把a.txt与b.txt .c.txt文件的内容合并 import java.io.Fil ...
- WIN10怎么查看端口,并杀死进程
在命令行执行一下命令 netstat -ano | findstr "
- LeetCode 124. Binary Tree Maximum Path Sum 二叉树中的最大路径和 (C++/Java)
题目: Given a non-empty binary tree, find the maximum path sum. For this problem, a path is defined as ...
- 体验京东云 Serverless+AI 人脸属性识别
云原生计算基金会CNCF(Cloud Native Computing Foundation, CNCF)Serverless Whitepaper v1.0对无服务器计算作了如下定义: Server ...
- Linux 正则表达式与文本处理器 三剑客
Linux 正则表达式与文本处理器 三剑客 一.正则表达式 正则就是用一些具有特殊含义的符号组合到一起(称为正则表达式)来描述字符或者字符串的方法.或者说:正则就是用来描述一类事物的规则. 在linu ...
- POJ 2039:To and Fro
To and Fro Time Limit: 1000MS Memory Limit: 30000K Total Submissions: 8632 Accepted: 5797 Descri ...
- MFC下的网络编程(1)CAsyncSocket进行无连接(UDP)通信
服务器端发送数据给客户端 先看服务器端: CAsyncSocket m_sockSend; //声明一个Socket对象 点击发送数据后,执行下面这些动作 ...
- Tensorflow学习教程------参数保存和提取重利用
#coding:utf-8 import tensorflow as tf from tensorflow.examples.tutorials.mnist import input_data mni ...
- 吴裕雄--天生自然TensorFlow2教程:前向传播(张量)- 实战
手写数字识别流程 MNIST手写数字集7000*10张图片 60k张图片训练,10k张图片测试 每张图片是28*28,如果是彩色图片是28*28*3-255表示图片的灰度值,0表示纯白,255表示纯黑 ...
- 吴裕雄--天生自然C++语言学习笔记:C++简介
C++ 是一种中级语言,它是由 Bjarne Stroustrup 于 年在贝尔实验室开始设计开发的.C++ 进一步扩充和完善了 C 语言,是一种面向对象的程序设计语言.C++ 可运行于多种平台上,如 ...