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

山西太原制作网站人有吗页面设计排版网站

山西太原制作网站人有吗,页面设计排版网站,怎么把自己做的网站传网上,济南教育论坛网站建设许多人知道 MATLAB 向量化编程#xff0c;少用 for 循环 可以提高代码运行效率#xff0c;但关于代码紧凑化编程#xff0c; arrayfun 与 bsxfun 两个重要函数却鲜有人能够用好#xff0c;今天针对这两个函数举例说明其威力。 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); alarrayfun((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 网格的坐标点。让我们逐步解释这段代码的各个部分 alarrayfun((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 函数两行搞定. bsxfunbinary 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://www.dnsts.com.cn/news/4779.html

相关文章:

  • 哪个网站可以领手工活在家做网站开发系统简介
  • 外贸seo网站石家庄网站制作福州
  • 青岛中企动力做网站怎么样一元钱购买网站空间
  • 用vs与dw做网站怎样快速仿做网站
  • 网站开发毕设文档网站流量统计表
  • 一个网站有个前端后端怎么做定制西装
  • 做昆特牌的网站关于做电商网站导流项目
  • 电子商务网站建设指导书wordpress 不显示工具栏
  • 银川建网站那家好有什么方法在淘宝发布网站建设设计
  • 福州做网站优化wordpress 调用媒体库
  • 做的好的地方网站北京海淀互联网公司
  • 个人在线视频播放网站搭建如果提高网站
  • 新网站怎么做流畅网站建设 方案
  • 网站建设找业主签字模板电子信息工程能进国家电网吗
  • 门户网站建设内网站制作包括什么
  • 电商网站现状分析e通网网站建设
  • 用凡科做网站的费用免费检测网站seo
  • 教做衣服的网站商务软文写作300
  • 淄博临淄建设局网站app企业网站
  • 网站建设论文开题报告中文搜索引擎排名
  • 网站建设公司项目介绍做网站是怎样赚钱
  • 纺织厂网站模板食品网站设计
  • 网站建设技术发展趋势预测北京优化互联网公司
  • 山东手机网站建设织梦57网站的友情链接怎么做
  • 服务好的赣州网站建设访问网站速度跟域名还是服务器有关
  • 手机代码网站有哪些问题合肥网页设计公司校企合作
  • 青岛市北区网站制作公司淘宝客网站建站
  • 注册网站域名需要什么资料医疗器械下载织梦做网站软件
  • 电子商务网站建设合同标准范文创意网店店铺名字大全
  • 中山微信网站网络广告策划内容