MATLAB基础:7.计算与编程策略

ops/2024/11/15 0:50:58/

计算与编程策略

一、矢量化编程

MATLAB以矩阵为基本元素
什么是矢量化编程

  • 将矩阵视为一个整体,对矩阵中的元素同时进行某种操作或运算,即整块的操作大量数据

矢量化编程的优点

  • 代码大大简化,编程效率高,代码可读性高
  • 程序执行效率高

例题:0~10等间隔取1001数,计算正弦函数值

matlab">x=0:0.01:10;
y=sin(x);

不需要for循环


例题:A是m*n的矩阵,求矩阵所有元素的和

matlab">sum(A(:))
sum(sum(A))

以前:

matlab">s=0;
for ii=1:size(A,1)for jj=1:size(A,2)s=s+A(ii,jj);end
end

或者:

matlab">for ii=1:numel(A)s=s+A(ii);
end

例题:给定正整数n,求和1/(2n-1)*sin(2n-1)

matlab">n=10;
s=0;
for ii=1:ns=s+1/(2*ii-1)*sin(2*ii-1);
endy=sum(1./(2:2:2*n-1).*sin(2:2:2*n-1))

二、利用矩阵的逻辑判断和比较

例题:
生成10*10的0~1的随机矩阵A,对其中元素按如下函数计算,得到同样大小的矩阵B:
y=x^2+x+1,x<0.5
y=x+1,x>=0.5
以前:

matlab">A=rand(10,10);
B=zeros(10,10);
for ii=1:numel(A)if A(ii)<0.5B(ii)=A(ii)^2+A(ii)+1;elseB(ii)=A(ii)+1;end
end

批量:

matlab">
B=A.^2+A+1;B(A>=0.5)=A(A>=0.5)+1;
B(A<0.5)=A(A<0.5)^2+A(A<0.5)+1;T1=find(A>=0.5);
B(T1)=A(T1)+1;
T2=find(A<0.5);
B(T2)=A(T2).^2+A(T2)+1;

一些常用函数

  1. find(A):查找A中非零元素的索引和值
  2. setdiff(A,B):返回A中,但不在B中的元素
  3. ismember(A,B):若A中元素在B中,则返回这些元素的索引
  4. unique(A):去除矩阵A中的重复元素,并排序
  5. union(A,B):合并A和B,并去除重复元素(求并集)

三、命名规则

四、注意事项

  1. 实现模块化:分解为小模块,采用函数形式
  2. 充分利用matlab自带的函数
  3. 通用性
  4. 注释
  5. 编写脚本
  6. 充分利用语法自检

五、常用快捷键

  1. Ctrl+R:一键注释
  2. Ctrl+T:取消注释
  3. Ctrl+L:删除当前行
  4. %: 注释
  5. TAB:缩进\补全
  6. clear:清除当前变量

六、常用标点

  1. :矩阵元素的分隔;输入量的分隔
  2. ;:数组行间换行

http://www.ppmy.cn/ops/113376.html

相关文章

Git常用指令大全详解

Git常用指令大全详解 Git&#xff0c;作为目前最流行的分布式版本控制系统&#xff0c;其强大的功能和灵活性为开发者提供了极大的便利。无论是个人项目还是团队协作&#xff0c;Git都扮演着不可或缺的角色。本文将详细总结Git的常用指令&#xff0c;帮助大家更好地掌握这一工…

openGemini 社区人才培养计划:助力成长,培养新一代云原生数据库人才

一、摘要 在技术革新的浪潮中&#xff0c;数据库技术是现代信息技术的基石&#xff0c;openGemini社区携手开发者&#xff0c;启动人才培养计划&#xff0c;旨在培养新一代云原生数据库技术人才&#xff0c;共同推动云原生数据库技术创新。 二、社区介绍 openGemini是一款开…

Unity引擎绘制多边形属性图

大家好&#xff0c;我是阿赵   在制作游戏的时候&#xff0c;经常会遇到需要绘制多边形属性图的需求&#xff0c;比如这种效果&#xff1a; 可以根据需要的属性的数量变化多边形的边数&#xff0c;然后每一个顶点从中心点开始到多边形的顶点的长度代表了该属性的强度&#xf…

排序题目:三次操作后最大值与最小值的最小差

文章目录 题目标题和出处难度题目描述要求示例数据范围 解法一思路和算法代码复杂度分析 解法二思路和算法代码复杂度分析 题目 标题和出处 标题&#xff1a;三次操作后最大值与最小值的最小差 出处&#xff1a;1509. 三次操作后最大值与最小值的最小差 难度 5 级 题目描…

Python数据分析案例60——扩展变量后的神经网络风速预测(tsfresh)

案例背景 时间序列的预测一直是经久不衰的实际应用和学术研究的对象&#xff0c;但是绝大多数的时间序列可能就没有太多的其他的变量&#xff0c;例如一个股票的股价&#xff0c;还有一个企业的用电量&#xff0c;人的血糖浓度等等&#xff0c;空气的质量&#xff0c;温度这些…

npm发布插件超级简单版

在开源的世界里&#xff0c;每个人都有机会成为贡献者&#xff0c;甚至是创新的引领者。您是否有过这样的想法&#xff1a;开发一个解决特定问题的小工具&#xff0c;让他成为其他开发者手中的利器&#xff1f;今天&#xff0c;我们就来一场实战训练&#xff0c;学习如何将你的…

零基础考过软考信息系统项目管理师经验分享

选择适合的课程&#xff1a;如果你是零基础&#xff0c;建议找一些专门针对新手的课程&#xff0c;讲解通俗易懂。 刷题至关重要&#xff1a;软考的题库很庞大&#xff0c;多做题是必须的。 做好笔记和复习&#xff1a;上课时要做好笔记&#xff0c;课后及时复习&#xff0c;…

高级编程--第七章 XML

1、目标 理解XML该你那及优势 回避那些格式良好的XML文档 了解XML中特殊字符的处理方式 了解解析器概念 了解DOM树节点构造 会使用Dom操作XML数据&#xff08;添加/保存&#xff09; 2、XML简介 XML&#xff08;EXtensible Markup Language&#xff09;,可扩展标记语言&…