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的两种主要形式

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

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

相关推荐
Dev7z30 分钟前
基于MATLAB HSI颜色空间的图像美颜系统设计与实现
开发语言·matlab
ghie90901 小时前
MATLAB 高速公路裂缝检测
开发语言·matlab
天呐草莓4 小时前
热传导方程
算法·matlab
hoiii1875 小时前
基于MATLAB实现无监督数据建模
开发语言·matlab
kaikaile19956 小时前
使用纯MATLAB M函数实现的无刷直流电机控制系统仿真
开发语言·matlab
崇山峻岭之间6 小时前
Matlab学习记录09
开发语言·学习·matlab
Dargon28818 小时前
实例讲解Simulink的MATLAB Function模块
开发语言·matlab·simulink·mbd软件开发
崇山峻岭之间1 天前
Matlab学习记录05
开发语言·学习·matlab
t198751281 天前
计算力学中经典四阶常微分方程的MATLAB求解方法
开发语言·matlab
tyatyatya1 天前
MATLAB三维绘图教程:plot3/mesh/surf/contour函数详解与实例
开发语言·matlab