首页 > 编程语言 >matlab程序设计——程序流程控制

matlab程序设计——程序流程控制

时间:2024-03-18 23:04:37浏览次数:26  
标签:语句 输出 pause 函数 disp 程序流程 fprintf matlab 程序设计

和所有编程语言一样,matlab也有类似的程序控制流程,函数定义与调用等操作,相较于python和c/++,matlab更加特别,其格式与二者皆有出入,尤其需要初学者慎重记忆、区分理解。

相同的,MATLAB的程序流程也无非分为:顺序结构、选择结构、循环结构三种类型

(一).顺序结构

MATLAB程序设计同样也遵循最基础的IPO原则

输入

MATLAB的input方式不拘一格:

变量名=input("promt")
%promt意为提示词,不可或缺,至少也要添一对引号即a=input("")

例如:

name = input('请输入您的姓名:');
age = input('请输入您的年龄:');
disp(['您好,' name '!']);
disp(['您今年已经 ' num2str(age) ' 岁了。']);

但是有一种特殊的情况,如果读入的是一个式子,例如:

a=6;
b=7;
c=input("")

输入

a*b+b

得到结果

c =

  49

此时c会将读入的内容和实际存储的变量进行运算,如果输入的内容中含有未定义的变量,则会报错

x+x
错误使用 input
函数或变量 'x' 无法识别。

输出

matlab的输出方式也不局限于输出方法,任意一个已经定义的变量,运行变量名时,都会输出该变量的值

例如:

a=5
a
%输出5

matlab也有其独特的函数输入方法:disp()、fprintf()

1.disp() 函数:disp() 函数用于在命令窗口中显示文本或变量的值。您可以通过 disp() 函数输出字符串和变量,并可以使用字符串连接、转换函数等来调整输出格式。

disp(x)

例如:

A = magic(3);
disp(A)
 %  8     1     6
 %  3     5     7
 %  4     9     2

2.fprintf() 函数:fprintf() 函数允许您按照格式化字符串的方式输出结果。您可以指定格式控制符号来控制输出的宽度、精度、对齐方式等。

fprintf(fileID,formatSpec,A1,...,An)

注:其中,fileID表示文件标识符,如果要将输出内容输出到命令窗口,则可以使用1作为标识符;formatSpec表示输出格式;A1,...,An表示要输出的数据或字符串。

例如:
 

A = magic(3);
fprintf('%d %d %d %d\n',A')
%8 1 6 3
%5 7 4 9
%2

在这个例子中A生成了一个三阶矩阵,正常情况下,应该生成一个三成三列的结果,但是由于我们指定的格式控制是'%d %d %d %d\n',也就是每行输出四个后换行,这样就改变了原本数据类型的格式来输出,但是变量本身并没有发生改变,只是输出出来的结果发生了格式变动。

而对于其中的格式化字符,除了提到的"%d"之外还有:

  • %d:输出整数
  • %f:输出浮点数,其中%n.mf代表总输出宽度为n,保留m个字符。
  • %e:以科学计数法输出浮点数
  • %s:输出字符串
  • %c:输出字符
  • %u:输出无符号整数
  • %o:输出八进制数
  • %x 或 %X:输出十六进制数(小写或大写)
  • %g:根据数值的大小自动选择 %f 或 %e 格式

 例如:

fprintf('整数:%d\n', 42);
fprintf('浮点数:%f\n', 3.14159);
fprintf('科学计数法:%e\n', 1.23e-4);
fprintf('字符串:%s\n', 'Hello, World!');
fprintf('字符:%c\n', 'A');
x = 3.14159;fprintf('输出的数字为:%6.2f\n', x);

输出:

整数:42
浮点数:3.141590
科学计数法:1.230000e-04
字符串:Hello, World!
字符:A
输出的数字为:  3.14

 对比以上两种方法,如果想要输出的数字为复数,建议最好采用disp函数,fprintf会麻烦一点,不能直接输出。

程序暂停(仅供了解)

在 MATLAB 中, `pause` 函数用来在程序执行过程中暂停一段时间。`pause` 函数可以接受一个参数,该参数是指定的暂停时间,单位为秒。

pause(5); % 暂停程序执行 5 秒钟


如果你希望程序在暂停期间等待用户按下任意键才继续执行,可以使用以下方式:

pause; % 等待用户按下任意键
disp('继续执行下一步');


不仅如此,`pause on` 和 `pause off` 耶用来控制程序暂停行为,它们会影响 `pause` 函数在程序执行过程中的行为。

pause on

当使用 `pause on` 命令时,表示允许后续的pause命令有效,即程序在调用 `pause` 函数时会等待用户按下任意键后才继续执行。

pause off

当使用 `pause off` 命令时,表示后续的pause命令无效,即程序在调用 `pause` 函数时不会等待,而是自动继续执行后续代码。
例如:

pause on; % 启用用户交互模式(默认设置)
disp('这是第一条信息');
pause;
disp('这是第二条信息');

pause off; % 禁用用户交互模式
disp('这是第三条信息');
pause;
disp('这是第四条信息');

在这个例子中,第一次调用 `pause` 时,如果处于 `pause on` 状态,程序会等待用户按下任意键;而第二次调用 `pause` 时,如果处于 `pause off` 状态,程序会自动继续执行后续代码。

注:在使用 `pause` 相关的函数时,要确保不会在循环中长时间暂停,以免影响程序的响应性,长时间的暂停可能会导致 MATLAB 响应异常,因此请谨慎使用。(如果想强行终止程序的运行,可以使用Ctrl+C)

(二).选择结构

在MATLAB中,实现选择结构可以分为两种语句:条件语句(if)和情况切换语句(switch)

条件语句

条件语句可分为:单分支、双分支和多分支

  • 单分支
    if  ···
        语句
    end
  • 双分支
    if ···
       语句
    else 
       语句
    end
  • 多分支
    if ···
       语句
    elseif ···
       语句
    elseif ···
       语句
    ···
    else
       语句
    end

    注,如果if后面跟的不是标量时,需要当矩阵的所有值均为非零,判断才为真(True)

情况切换语句

MATLAB的情况切换语句和c++相类似

switch 变量
   case 值1
       语句1
   case 值2
       语句2
   case 值3
       语句3
   ···
   otherwise
       语句n
end

 当变量的值等于case后面的值时执行该case下的语句,如果没有case符合,则执行otherwise下的语句

(三).循环结构

类似的,MATLAB的循环结构耶依赖for或while实现,但是具体的实现略有不同

for语句

for 循环体
   语句
end

其中循环体的形式可以有很多种:
例如:

%1.
for k=1:20      %从1循环到20

%2.
x=[7 3 10 5]
for x           %用矩阵元素进行循环

当然,for语句是可以进行嵌套的

while语句

while 循环条件
   语句
end

while的循环条件可以是一个判断语句,也可以是一个数据列

x=[2 1 5 4 8 0 2 5]
while x
    语句
end

在这个例子里面,while直接遍历x中存储的数据,当遍历到0时,自动跳出循环。

break &continue语句

break和continue是作为一类控制程序执行通断的语句,用来在适当条件下调整程序的运行。

break语句用来终止语句执行,当循环体内部执行break时,程序跳出循环,继续执行循环语句的下一语句。

continue语句用来跳过某些语句,当循环体内部执行continue时,程序跳过循环体中所有剩下的语句,继续执行下一循环。

(四)嵌套

选择结构和循环结构都可以相互结合嵌套使用,无论是在循环中选择还是在选择中循环都是可以实现的,如果使用到了continue或break语句,则尤其需要注意结构合理与否,否则会造成意想不到的错误。

标签:语句,输出,pause,函数,disp,程序流程,fprintf,matlab,程序设计
From: https://blog.csdn.net/zhanghongyi_cpp/article/details/136715838

相关文章

  • 数学建模--MATLAB基本使用
    1.线性方程组这个是一个线性方程组(属于线性代数的范畴),Ax=b类型的方程,如果使用MATLAB进行求解,就需要分别表示A矩阵(线性方程组未知数前面的系数),b矩阵(表示等式右边的结果),inv是这个软件里面的一个函数,用来进行求解A的逆矩阵,因为Ax=b,那么x=A-1次方乘上b另外,我们也可以使用这个......
  • #c语言程序设计————实验报告
    实验项目名称:实验一熟悉C语言运行环境实验项目类型:验证性实验日期:2023年3月14日一、实验目的下载安装Devc6.0程序。了解在该系统上如何进行编辑、编译、连接和运行一个C程序。通过运行简单的C程序了解C程序的特点。二、实验硬、软件环境Windows计算机、Devc6.0三、......
  • Matlab 实现抽样定理
    Matlab实现抽样定理-Wsine-博客园(cnblogs.com)  clearallclc%%设置原始信号%t=-0.2:0.0005:0.2;t=-0.2:(1/80):0.2;N=1000;k=-N:N;W=k*2000/N;origin=sin(2*pi*60*t)+cos(2*pi*25*t)+sin(2*pi*30*t);%......
  • m基于深度学习网络的手势识别系统matlab仿真,包含GUI界面
    1.算法仿真效果matlab2022a仿真结果如下:     2.算法涉及理论知识概要        随着人工智能和机器学习技术的飞速发展,手势识别技术在人机交互、虚拟现实、智能家居等领域的应用越来越广泛。基于深度学习网络的手势识别系统凭借其强大的特征提取和......
  • 基于yolov2深度学习网络的视频手部检测算法matlab仿真
    1.算法运行效果图预览输入mp4格式的视频文件进行测试,视频格式为1080p@30.   2.算法运行软件版本matlab2022a  3.算法理论概述         近年来,深度学习在计算机视觉领域取得了显著成果,特别是在目标检测任务中。YOLO(YouOnlyLookOnce)系列算法作为其中......
  • Matlab|【免费】基于半不变量的概率潮流计算
    目录主要内容     部分代码     结果一览   下载链接主要内容   该程序主要内容是基于半不变量法的概率潮流,包含蒙特卡洛模拟法、半不变量法+Gram-Charlier级数展开以及半不变量法+Cornish-Fisher级数展开三种方法以及效果对比,模型考虑了负荷不确定性(......
  • PTA浙大版《C语言程序设计(第4版)》2—6
    练习2-6计算物体自由下落的距离一个物体从100米的高空自由落下。编写程序,求它在前3秒内下落的垂直距离。设重力加速度为10米/。输入格式:本题目没有输入。输出格式:按照下列格式输出height=垂直距离值代码长度限制  16KB时间限制  400ms内存限制  64MB......
  • C语言程序设计——实验报告 1
    *实验项目名称:实验一熟悉C语言运行环境*实验项目类型:验证性*实验日期:2023年3月14日一、实验目的下载安装Devc6.0程序。了解在该系统上如何进行编辑、编译、连接和运行一个C程序。通过运行简单的C程序了解C程序的特点。二、实验硬、软件环境Windows计算机、Devc6.0三、......
  • # c语言程序设计——实验报告
    实验项目名称:实验一熟悉C语言运行环境实验项目类型:验证性实验日期:2023年3月14日一、实验目的下载安装Devc6.0程序。了解在该系统上如何进行编辑、编译、连接和运行一个C程序。通过运行简单的C程序了解C程序的特点。二、实验硬、软件环境Windows计算机、Devc6.0三、......
  • c语言程序设计--实验报告一
    实验项目名称:实验一熟悉C语言运行环境实验项目类型:验证性实验日期:2023年3月14日一、实验目的下载安装Devc6.0程序。了解在该系统上如何进行编辑、编译、连接和运行一个C程序。通过运行简单的C程序了解C程序的特点。二、实验硬、软件环境Windows计算机、Devc6.0三、......