MATLAB的使用(二)

一,算法需求

算法五特性
(1)有穷性。有穷性是指算法需在有穷步骤、有穷时间内结束。

(2)确定性。确定性是指每个步骤都有确切的意义,相同的输入有相同的输出。

(3)有效性。有效性是指可通过已实现的运算在有限次完成,或叫可行性。

(4)输入。

(5)输出。

二,分支语句

1,分支结构

·分支语句的作用:判断当前的情况来决定下一步的工作

·一般情形:MATLAB提供了if-else-end结构和switch-case-otherwise结构来实现分支功能。

·特殊情形:try-catch结构是分支选择结构的一种特殊形式。

如果程序的bugs 在try语句块中,那么程序将会执行catch语句块。

try-catch语句可以用于捕捉错误

问:为什么try-catch应用较少?

在当前Matlab 的脚本高debuq 运行模式下,采用dbstopiferror 等语句更加简洁,当针对特殊异常捕获时才会使用try-catch。

2,if-else-end

3,switch-case-otherwise

注意:switch语句判断的时delta值的本身,而不是判断语句

三,循环语句

循环语句的作用:对重复性工作进行执行,并提供起始和结束的标志·

MATLAB提供了for结构和while结构来实现循环功能。

-for语句循环的特点是判断条件通常是对循环次数的判断,一般循环次数预先设定好;

-while语句直接将逻辑判断语句作为控制条件

原则上while的适用范围更广一些。但在一般操作中for循环的应用更加广泛。

1,for结构

index在values中按顺序进行取值,value一般是行向量形式,一般采用冒号表达式进行生成

2,while结构

3,组合控制

除了在判断中对代码下一步进行控制,还具有三种特殊控制符

break 跳出循环体

continue 跳过本次循环

return 跳出函数体 在matlab的一般使用中较少应用return

4,循环体与矩阵

Matlab具有非常优异的矩阵运算优势,能用矩阵运算则用矩阵

1.尽量避免对矩阵元素进行循环遍历操作

2.循环体中的参量应提前预留空间,避免在循环中新建空间

5,多线程循环

*parfor中不能存在二级循环结构

*parfor由于是并行体系,其不同循环中数据不能冲突

*parfor中不能使用break/continue

function imgfin=parfor img(T,S,defocus tM,CC)

   imgfin=zeros(M,2*T);

    parfor ji=l:M

           imgfin(jj,:)=Quick Defocus img deta(T,0.5,1,2*T,T,S,defocus t,cc);

     end

end

第一次使用parfor时需要启动线程,需要消耗一定时间:

在for循环占耗时主体的函数中,可设计parfor来加速

四,自定义函数

尽管完全在MATLAB命令行中进行许多有用的计算,但迟早需要编写M文件它们是其他编程语言中

程序、函数、子程序和过程的等价物。将一系列命令收集到一个M文件中会带来很多可能性,包括

·通过编辑文件而不是重新键入一长串命令来实现算法,

·对数值实验进行永久记录,

·建立日后可重复使用的公用设施,

·与他人交换M文件。

M-File的两种主要形式

·脚本:可直接运行、编辑、调试的一组代码

·函数:进行特定输入/输出的一组代码

相关推荐
2401_8581205310 小时前
深入理解MATLAB中的事件处理机制
前端·javascript·matlab
leon62510 小时前
优化算法(一)—遗传算法(Genetic Algorithm)附MATLAB程序
开发语言·算法·matlab
小齿轮lsl10 小时前
PFC理论基础与Matlab仿真模型学习笔记(1)--PFC电路概述
笔记·学习·matlab
学习不好的电气仔13 小时前
基于虚拟阻抗的逆变器下垂控制环流抑制策略MATLAB仿真
开发语言·matlab
原机小子13 小时前
掌握MATLAB中的数据类型转换技巧
开发语言·matlab
机器学习之心16 小时前
时序预测 | Matlab实现SSA-TCN麻雀搜索算法优化时间卷积网络时序预测-递归预测未来数据(单输入单输出)
matlab·递归预测未来·ssa-tcn·麻雀搜索算法优化时间卷积网络
shiming887919 小时前
MATLAB图像处理
图像处理·计算机视觉·matlab
slandarer19 小时前
MATLAB | R2024b更新了哪些好玩的东西?
java·数据结构·matlab
2401_8581202619 小时前
MATLAB中的无线通信系统部署和优化工具有哪些
开发语言·matlab
MATLAB滤波19 小时前
【PSINS】基于PSINS工具箱的EKF+UKF对比程序|三维定位|组合导航|MATLAB
开发语言·matlab