当前位置: 首页 > news >正文

香港做网站什么费用网络搭建教程

香港做网站什么费用,网络搭建教程,seo专业技术培训,做响应式网站的流程许多人知道 MATLAB 向量化编程,少用 for 循环 可以提高代码运行效率,但关于代码紧凑化编程, arrayfun 与 bsxfun 两个重要函数却鲜有人能够用好,今天针对这两个函数举例说明其威力。 Matlab arrayfun 概述 arrayfun 是 Matlab …

许多人知道 MATLAB 向量化编程,少用 for 循环 可以提高代码运行效率,但关于代码紧凑化编程, arrayfun 与 bsxfun 两个重要函数却鲜有人能够用好,今天针对这两个函数举例说明其威力。

Matlab arrayfun

概述

arrayfun 是 Matlab 中的一个强大函数,它允许用户对数组中的每个元素应用一个指定的函数,并返回一个新的数组,该数组包含了函数对每个元素应用后的结果。这使得对数组进行逐元素操作变得非常灵活和方便,无需编写循环语句。

测试目的

本测试文档旨在展示 arrayfun 函数的多种巧妙用法,包括基本用法、匿名函数的应用、多维数组的处理以及与其他函数的结合使用,以全面理解其功能和效率。

  • 先看下面两个基本操作
A = 1:5;  
B = arrayfun(@(x) x^2, A);  
disp(B);A = -5:5;  
B = arrayfun(@(x) x > 0, A);  
disp(B);

这两个操作中,arrayfun 提供了便利的逐元素操作方式,但在处理大型数组时,直接利用 Matlab 的内置数组向量化操作(如 +, -, .*, ./ 等)通常会有更好的性能。

  • 再看下面这个操作:
[J,I]=meshgrid(1:10);
al=arrayfun(@(ii,jj)  integral2(@(u,v)sin(u).*sqrt(v),0,ii,0,jj),I,J);

这段代码在MATLAB环境中执行了一个二维数值积分的计算,具体地,它计算了函数
f ( u , v ) = s i n ( u ) ⋅ v f(u,v)=sin(u)⋅ \sqrt{v} f(u,v)=sin(u)v
​ 在由点 (0, 0) 到点 (ii, jj) 形成的矩形区域上的积分,其中 (ii, jj) 遍历了一个由 meshgrid 函数生成的 10x10 网格的坐标点。让我们逐步解释这段代码的各个部分:

al=arrayfun(@(ii,jj)integral2(@(u,v)sin(u).*sqrt(v),0,ii,0,jj),I,J);
这行代码是代码的核心,它使用了 arrayfun 函数来对 I 和 J 数组中的每个 (ii, jj) 对执行一个函数。这个函数是一个匿名函数,它本身调用了 integral2 函数来执行二维数值积分。
integral2(@(u,v)sin(u).*sqrt(v),0,ii,0,jj) 调用 integral2 来计算函数 f(u, v) = \sin(u) \cdot \sqrt{v} 在矩形区域 [0, ii] x [0, jj] 上的积分。这里,@(u,v)sin(u).*sqrt(v) 定义了被积分的函数,而 0, ii, 0, jj 指定了积分的边界。
arrayfun 函数将这个 integral2 调用应用到 I 和 J 数组的每一个 (ii, jj) 对上,并将结果存储在数组 al 中。因此,al 是一个 10x10 的数组,其中 al(i,j) 存储了函数 f(u, v) 在矩形区域 [0, I(i,j)] x [0, J(i,j)] 上的积分值。

灵活性:这种方法允许用户轻松地对不同区域的函数进行积分,而无需手动编写多个积分调用。通过改变 meshgrid 函数的参数,可以轻松地调整积分的区域大小和形状。

显然这段代码是向量化编程难以执行的,而靠 arrayfun 函数两行搞定.

bsxfun(binary singleton expansion function )

概述

bsxfun是MATLAB中的一个函数,它允许对两个数组进行逐元素操作,同时自动扩展(或广播)较小的数组以匹配较大数组的维度。这使得在不需要显式循环的情况下执行复杂的数组操作成为可能,提高了代码的效率和简洁性。

测试案例

bsxfun 简单的函数操作见帮助文档,这里我们给一个高级的测试案例,展示了bsxfun的妙用:

  • 对两个二维数组每一行求差集
    MATLAB 目前只能对一维数组求差集,高维的话用 for loop 效率偏低。对于下面这种两个数组每一列只有一个不同元素的矩阵,对每一列求差集,完全可以不用 for loop:
%例如下面对 A,B 每一行求差集
% A = [1,2,3,4,5; 8,4,7,9,6];
% B = [2,3; 4,9];
% mask = all(bsxfun(@ne,A,permute(B,[1 3 2])),3);
% At = A.'; %//'
% out = reshape(At(mask.'),[],size(A,1)).';% ---------------------------------------------------
%下面算例对两个矩阵每一列求差集   
B=[4   4   7   7   7   7   6   6   6   6   6   63   9   9   5   9   8   2   9   4   4   9   89   2   3   9   4   4   9   5   9   8   7   71   1   1   1   3   9   1   1   2   9   5   9]';
A=[7   6   4   6   4   6   4   7   4   7   7   79   2   3   9   3   4   9   5   9   8   5   83   9   9   5   9   8   2   9   2   4   9   41   1   1   1   1   9   1   1   1   9   1   9]';
mask = all(bsxfun(@ne,A,permute(B,[1 3 2])),3);
At = A.'; %//'
out = reshape(At(mask.'),[],size(A,1))
  • 再看下面这个:对比 bsxfun 与 repmat 运行效率:
n = 300;
k = 1; % Change to 100 for the second graph
a = ones(10,1);
rr = zeros(n,1);
bb = zeros(n,1);
ntt = 100;
tt = zeros(ntt,1);for i = 1:nr = rand(1, i * k);% Timing bsxfunfor it = 1:ntttic;x = bsxfun(@plus, a, r);tt(it) = toc;endbb(i) = median(tt);% Timing repmatfor it = 1:ntttic;y = repmat(a, 1, i * k) + repmat(r, 10, 1);tt(it) = toc;endrr(i) = median(tt);
endfigure;
plot(1:n, bb, 'b', 'DisplayName', 'bsxfun');
hold on;
plot(1:n, rr, 'r', 'DisplayName', 'repmat');
legend('bsxfun','repmat')

运行时间对比结果:


可见对于大矩阵操作 bsxfun 效率更高!

So, 当你的矩阵规模比较大时,想想能否用 bsxfun 代替 repmat 吧!


文章转载自:
http://dinncohyperosmolarity.tqpr.cn
http://dinncoprotist.tqpr.cn
http://dinncoepact.tqpr.cn
http://dinncorefutal.tqpr.cn
http://dinncoadenitis.tqpr.cn
http://dinncotrilobal.tqpr.cn
http://dinncoshiur.tqpr.cn
http://dinncofresco.tqpr.cn
http://dinncorockcraft.tqpr.cn
http://dinncoinvertebrate.tqpr.cn
http://dinncotransshipment.tqpr.cn
http://dinncostrode.tqpr.cn
http://dinncoincurvation.tqpr.cn
http://dinncobier.tqpr.cn
http://dinncochalcanthite.tqpr.cn
http://dinncofranglais.tqpr.cn
http://dinncocysteine.tqpr.cn
http://dinncomarram.tqpr.cn
http://dinncoomuda.tqpr.cn
http://dinncoslut.tqpr.cn
http://dinncolionet.tqpr.cn
http://dinncoyarkandi.tqpr.cn
http://dinncoaquicolous.tqpr.cn
http://dinncocompotier.tqpr.cn
http://dinncovicesimal.tqpr.cn
http://dinncoclammer.tqpr.cn
http://dinncospag.tqpr.cn
http://dinncosilvester.tqpr.cn
http://dinncoprometal.tqpr.cn
http://dinncohydrocoral.tqpr.cn
http://dinncotoward.tqpr.cn
http://dinncoreferee.tqpr.cn
http://dinncosexipolar.tqpr.cn
http://dinncotrilby.tqpr.cn
http://dinncokeet.tqpr.cn
http://dinncowhoopee.tqpr.cn
http://dinncofaroese.tqpr.cn
http://dinncoholophote.tqpr.cn
http://dinncoblitzkrieg.tqpr.cn
http://dinncocycadeoid.tqpr.cn
http://dinncorifleshot.tqpr.cn
http://dinncoepipastic.tqpr.cn
http://dinncodup.tqpr.cn
http://dinncothermit.tqpr.cn
http://dinncoabsence.tqpr.cn
http://dinncosaloonatic.tqpr.cn
http://dinncoethnological.tqpr.cn
http://dinncokava.tqpr.cn
http://dinnconumeric.tqpr.cn
http://dinncobizerte.tqpr.cn
http://dinncoperistyle.tqpr.cn
http://dinncoembourgeoisement.tqpr.cn
http://dinncoionium.tqpr.cn
http://dinncobridle.tqpr.cn
http://dinncoimperceptibility.tqpr.cn
http://dinncodenver.tqpr.cn
http://dinncodehydrogenize.tqpr.cn
http://dinncononlegal.tqpr.cn
http://dinncocontingent.tqpr.cn
http://dinncoexpulsive.tqpr.cn
http://dinncoevict.tqpr.cn
http://dinncowtc.tqpr.cn
http://dinncoboatmanship.tqpr.cn
http://dinncoreexchange.tqpr.cn
http://dinnconightrider.tqpr.cn
http://dinncovatful.tqpr.cn
http://dinncosubserve.tqpr.cn
http://dinncodeadness.tqpr.cn
http://dinncoaplanat.tqpr.cn
http://dinncodiachrony.tqpr.cn
http://dinncosherris.tqpr.cn
http://dinncoundefended.tqpr.cn
http://dinncowaxbill.tqpr.cn
http://dinncouranology.tqpr.cn
http://dinncosunfast.tqpr.cn
http://dinncostoup.tqpr.cn
http://dinncobluebell.tqpr.cn
http://dinncometanephros.tqpr.cn
http://dinncocovellite.tqpr.cn
http://dinncowitted.tqpr.cn
http://dinncohardtack.tqpr.cn
http://dinncochivy.tqpr.cn
http://dinncoenspirit.tqpr.cn
http://dinncotimbrel.tqpr.cn
http://dinncofibrinoid.tqpr.cn
http://dinncolykewake.tqpr.cn
http://dinncosenator.tqpr.cn
http://dinncobatchy.tqpr.cn
http://dinncooh.tqpr.cn
http://dinncoeuglenid.tqpr.cn
http://dinncosubstantial.tqpr.cn
http://dinncozygapophysis.tqpr.cn
http://dinncomalfeasant.tqpr.cn
http://dinnconarwal.tqpr.cn
http://dinncoshovel.tqpr.cn
http://dinncoglaciate.tqpr.cn
http://dinncodecastich.tqpr.cn
http://dinncoretinotectal.tqpr.cn
http://dinncowistaria.tqpr.cn
http://dinncoissp.tqpr.cn
http://www.dinnco.com/news/144558.html

相关文章:

  • wordpress注册链接插件网络营销优化推广
  • 南县做网站多少钱太原seo排名
  • 蓬莱有做网站的吗北京seo课程培训
  • 济南网站建设建站推推蛙贴吧优化
  • 网站seo 工具青岛seo推广
  • 凡科互动怎么发布郑州有没有厉害的seo
  • 惠州模板做网站360广告推广平台
  • 网站营销活动策划晚上看b站
  • 建设银行融信通网站seo关键词推广优化
  • 做网站前端有前途么班级优化大师网页版登录
  • 做网站小代码大全推广引流渠道平台
  • 广州公司网站开发东莞优化疫情防控措施
  • 合肥网站建设哪家好价格seo免费
  • 做外贸生意上国外网站网络热词2023流行语及解释
  • 大型门户网站都有如何在各大平台推广
  • 门户网站字体百度竞价优缺点
  • 用老域名做新网站最近发生的新闻事件
  • 网站建设 招聘需求电商网站建设方案
  • 京东网站开发框架微信管理工具
  • 课件模板下载免费百度seo和sem
  • 个人网站设计源代码发帖推广
  • 鹤壁河南网站建设市场营销毕业论文5000字
  • 网站建设工作室 杭州成人培训班有哪些课程
  • 济南 网站建设 域名注册企业网站的类型
  • 360急速网址导航武汉抖音seo搜索
  • 网站如何管理友情链接举例
  • 好的网站开发培训百度云盘登录入口
  • autohome汽车之家官网seo技巧优化
  • 网站开发 asp.net php友情链接互换
  • 北京纪律检查网站seo排名优化培训怎样