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

news/2024/11/15 6:54:12/

计算与编程策略

一、矢量化编程

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/news/1528344.html

相关文章

npm的作用域介绍

npm 的作用域 在 node_modules 目录中&#xff0c;带有 符号的目录和不带 符号的目录有以下区别&#xff1a; 带 的目录&#xff1a; 表示这是一个 作用域&#xff08;Scoped Package&#xff09;。作用域可以帮助组织和管理相关的包&#xff0c;通常以 scope/package-na…

Python中的策略模式:解锁编程的灵活之钥

引言 在软件开发过程中&#xff0c;我们经常需要根据不同的条件或上下文来改变算法的行为。例如&#xff0c;在电子商务网站中&#xff0c;根据用户所在地区选择合适的支付方式&#xff1b;或者在游戏中&#xff0c;根据玩家等级调整敌人AI的行为。这些场景都需要我们的程序能…

Java项目实战II基于Java+Spring Boot+MySQL的洗衣店订单管理系统(开发文档+源码+数据库)

目录 一、前言 二、技术介绍 三、系统实现 四、论文参考 五、核心代码 六、源码获取 全栈码农以及毕业设计实战开发&#xff0c;CSDN平台Java领域新星创作者 一、前言 随着生活节奏的加快&#xff0c;现代人对便捷、高效服务的需求日益增长&#xff0c;洗衣店作为日常生…

[数据集][目标检测]俯拍航拍森林火灾检测数据集VOC+YOLO格式6116张2类别

数据集格式&#xff1a;Pascal VOC格式YOLO格式(不包含分割路径的txt文件&#xff0c;仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数)&#xff1a;6116 标注数量(xml文件个数)&#xff1a;6116 标注数量(txt文件个数)&#xff1a;6116 标注…

zabbix7.0容器化部署测试--(1)准备容器镜像

本文为zabbix7.0容器化部署测试系统文档之一&#xff0c;准备容器镜像。拟测试数据库后台为PostgreSQL16并启用timescaledb插件。 一、准备数据库容器镜像 因为不确定zabbix7.0对数据库timescaledb插件的版本要求&#xff0c;准备了现个镜像版本 1、准备timescaledb-2.14.2插…

34. 模型材质父类Material

学习到现在大家对threejs的材质都有简单的了解&#xff0c;本节课主要结合文档&#xff0c;从JavaScript语法角度&#xff0c;给大家总结一下材质API的语法。 材质父类Material 查询threejs文档&#xff0c;你可以看到基础网格材质MeshBasicMaterial、漫反射网格材质MeshLamb…

JVM 案例研究与实战经验

在过去的几年中&#xff0c;Java 虚拟机&#xff08;JVM&#xff09;已经成为企业级应用开发的基石。从简单的 Web 应用到复杂的分布式系统&#xff0c;JVM 语言和框架在各个领域都得到了广泛的应用。本文将通过几个实际案例&#xff0c;探讨 JVM 在不同场景中的应用&#xff0…

人工智能在肿瘤浸润淋巴细胞研究中的最新进展|文献速递·24-09-20

小罗碎碎念 文献速递&#xff5c;目录 一、胆道癌治疗应答的新型AI生物标志物&#xff1a;肿瘤浸润性淋巴细胞的空间分布 补充文献&#xff1a;22年发表于JCO的一篇类似文献 二、生物标志物在肝细胞癌管理中的作用&#xff1a;从发现到临床应用 三、肿瘤样本中免疫细胞浸润水…