matlab学习——程序流程控制

2024-03-30 03:18

本文主要是介绍matlab学习——程序流程控制,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

%% 1 顺序结构程序 
%A=input('...') 输入
%disp()          输出
%pause(s)        s为延迟秒数,省略则暂停按任意键继续
%输入平面内两点坐标,计算距离及黄金分割点坐标
a=input('a=');
b=input('b=');
c=a+0.618*(b-a);
s=abs(a-b);
disp(s)
disp(c)
%% 2 if语句选择结构
% 2.1单分支if语句
%   if 条件
%      语句组
%   end
% 条件为标量时:非零条件成立,零条件不成立
% 条件为矩阵时:矩阵非空且不包含零元素条件成立,否则不成立
% 2.2双分支if语句
%   if 条件
%      语句组1
%   else 
%      语句组2
%   end
%例:输入一个整数,若为奇数输出其平方根,否则输出其立方根
x=input('请输入x的值:');
if rem(x,2)        %rem(x,2)==1 y=sqrt(x);
elsey=x^(1/3);      %power(x,1/3)
end
y
% 2.3多分支if语句
%   if 条件1
%       语句组1
%   elseif 条件2
%       语句组2
%      ...
%   elseif 条件m
%       语句组m
%   else 
%       语句组n
%   end
%例:输入一个字符,大写字母->小写字母,小写字母->大写字母,数字字符->平方,其他->不变
c=input('请输入一个字符:','s');
if c>='A' && c<='Z'disp(lower(c))
elseif c>='a' && c<='z'disp(upper(c))
elseif c>='0' && c<='9'disp(str2double(c)^2)
elsedisp(c)
end
%% 3switch语句实现选择结构
% switch 表达式
%   case 结果表1
%       语句组1
%   case 结果表2
%       语句组2
%      ...
%   case 结果表m
%       语句组m
%   otherwise
%       语句组n
% end
% switch表达式的值应是可列举的(整型表达式、字符串表达式)
% case结果表为switch表达式的取值,取值有多个时,用单元数据表示({...})
x=input('x=?');
switch fix(x)case 2disp(111);case 2disp(222);case {3,4,5}disp(333);otherwisedisp(444);
end
% 例:输入一个英文单词,判断它是否以元音字母开头
clc,clear
c=input('请输入一个单词:','s');
switch c(1)case {'A','E','I','O','U','a','e','i','o','u'}disp([c,'以元音字母开头']);otherwisedisp([c,'以辅音字母开头']);
end
% 或
c=input('请输入一个单词:','s');
if findstr(c(1),'AEIOUaeiou')>0disp([c,'以元音字母开头']);
elsedisp([c,'以辅音字母开头']);
end
% 例:整数分级(输入PM2.5数值,输出空气质量等级)
g=input('请输入PM2.5值:');
switch fix(g)case num2cell(0:34)disp('空气质量优');case num2cell(35:74)disp('空气质量良好');case num2cell(75:114)disp('空气质量轻度污染');case num2cell(115:149)disp('空气质量重度污染');case num2cell(150:249)disp('空气质量重度污染');otherwisedisp('空气质量严重污染');
end
%% 4 for语句实现循环结构
% for 循环变量=表达式1(初值):表达式2(步长):表达式3(终值)/行向量/矩阵表达式
%   循环体语句
% end
% for语句针对向量的每一个元素执行一次循环体(向量为空时,循环体一次也不执行)
% 退出循环之后,循环变量的值就是向量中最后的元素值
for i=[1,3,2,5]i
end
for j=[1;3;2;5]j
end
i,j
% 例:计算圆周率π
% 利用无穷级数展开式求
y=0;g=-1;
n=input('n=?');
for i=1:ng=-g;y=y+g*1/(2*i-1);
end
pai=4*y
% 向量求和方法
n=input('n=?');
x=1:2:(2*n-1);
y=(-1).^(2:n+1)./x;
pai=sum(y)*4
% 利用定积分的近似值求pi的近似值
a=0;b=1;
n=input('n=?');
h=(b-a)/n;
x=a:h:b;
f=sqrt(1-x.*x);
s=[];
for k=1:ns1=(f(k)+f(k+1))*h/2;s=[s,s1];
end
pai=4*sum(s)
% 蒙特卡洛法求pi
s=0;
n=input('n=?');
for i=1:nx=rand(1);y=rand(1);if x*x+y*y<=1s=s+1;end
end
pai=s/n*4
%% 5 while语句实现循环结构
% while 条件
%   循环体语句
% end
% 例:从键盘输入若干数、输入0时结束,计算这些数的平均值和它们的和
msum=0;
n=0;
x=input('Enter a number (end in 0):');
while x~=0msum=msum+x;n=n+1;x=input('Enter a number (end in 0):');
end
if n>0msummean=msum/n
end
%% 流程转向语句breakcontinue
% break语句,跳出循环体
% continue语句,结束本次循环
% 例:求[100,200]之间第一个能被21整除的整数
for n=100:200if rem(n,21)~=0continueendnbreak
end
%% 循环的嵌套
% 例:筛选法求[2,m]内全部素数
m=input('m=');
p=1:m;
p(1)=0;
for i=2:sqrt(m)for j=2*i:i:mp(j)=0;end
end
n=find(p~=0);
p(n)
%% 6 匿名函数
% 函数句柄变量=@(匿名函数输入参数)匿名函数表达式
f=@(x,y) x^2+y^2;
f(3,4)
% 函数句柄变量=@函数名
h=@sin;
h(pi/2)
% 例:求y=f(40)/(f(30)+f(20)),f(n)=n+10ln(n^2+5)
clc,clear
f1=@(n) n+10*log(n^2+5);
y=f1(40)/(f1(30)+f1(20))
%% 7 函数的递归调用
% 例:求n!
fact(10)
function f=fact(n)if n<=1f=1;elsef=fact(n-1)*n;end
end
% 例:验证fibonacci数列性质
clc,clear
F=[];
for k=1:20F=[F,ffib(k)*ffib(k)];
end
sum(F)
ffib(20)*ffib(21)
function f=ffib(n)if n>2f=ffib(n-1)+ffib(n-2);elsef=1;end
end
```c
```c
%% 8 函数参数与变量的作用域
% nargin    调用函数时输入实参的个数
% nargout   调用函数时输出实参的个数
function fout=test1(a,b,c)if nargin==1fout=a;elseif nargin==2fout=a+b;elseif nargin==3fout=(a*b*c)/2end
end
% 局部变量:函数文件中的变量为局部变量
% 全局变量:global 全局变量名
function f=wad(x,y)
global ALPHA BETA
f=ALPHA*x+BETA*y;
end
global ALPHA BETA
ALPHA=1;
BETA=2;
s=wad(1,2)

这篇关于matlab学习——程序流程控制的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/860347

相关文章

HarmonyOS学习(七)——UI(五)常用布局总结

自适应布局 1.1、线性布局(LinearLayout) 通过线性容器Row和Column实现线性布局。Column容器内的子组件按照垂直方向排列,Row组件中的子组件按照水平方向排列。 属性说明space通过space参数设置主轴上子组件的间距,达到各子组件在排列上的等间距效果alignItems设置子组件在交叉轴上的对齐方式,且在各类尺寸屏幕上表现一致,其中交叉轴为垂直时,取值为Vert

Ilya-AI分享的他在OpenAI学习到的15个提示工程技巧

Ilya(不是本人,claude AI)在社交媒体上分享了他在OpenAI学习到的15个Prompt撰写技巧。 以下是详细的内容: 提示精确化:在编写提示时,力求表达清晰准确。清楚地阐述任务需求和概念定义至关重要。例:不用"分析文本",而用"判断这段话的情感倾向:积极、消极还是中性"。 快速迭代:善于快速连续调整提示。熟练的提示工程师能够灵活地进行多轮优化。例:从"总结文章"到"用

Spring Security 基于表达式的权限控制

前言 spring security 3.0已经可以使用spring el表达式来控制授权,允许在表达式中使用复杂的布尔逻辑来控制访问的权限。 常见的表达式 Spring Security可用表达式对象的基类是SecurityExpressionRoot。 表达式描述hasRole([role])用户拥有制定的角色时返回true (Spring security默认会带有ROLE_前缀),去

【前端学习】AntV G6-08 深入图形与图形分组、自定义节点、节点动画(下)

【课程链接】 AntV G6:深入图形与图形分组、自定义节点、节点动画(下)_哔哩哔哩_bilibili 本章十吾老师讲解了一个复杂的自定义节点中,应该怎样去计算和绘制图形,如何给一个图形制作不间断的动画,以及在鼠标事件之后产生动画。(有点难,需要好好理解) <!DOCTYPE html><html><head><meta charset="UTF-8"><title>06

学习hash总结

2014/1/29/   最近刚开始学hash,名字很陌生,但是hash的思想却很熟悉,以前早就做过此类的题,但是不知道这就是hash思想而已,说白了hash就是一个映射,往往灵活利用数组的下标来实现算法,hash的作用:1、判重;2、统计次数;

零基础学习Redis(10) -- zset类型命令使用

zset是有序集合,内部除了存储元素外,还会存储一个score,存储在zset中的元素会按照score的大小升序排列,不同元素的score可以重复,score相同的元素会按照元素的字典序排列。 1. zset常用命令 1.1 zadd  zadd key [NX | XX] [GT | LT]   [CH] [INCR] score member [score member ...]

【机器学习】高斯过程的基本概念和应用领域以及在python中的实例

引言 高斯过程(Gaussian Process,简称GP)是一种概率模型,用于描述一组随机变量的联合概率分布,其中任何一个有限维度的子集都具有高斯分布 文章目录 引言一、高斯过程1.1 基本定义1.1.1 随机过程1.1.2 高斯分布 1.2 高斯过程的特性1.2.1 联合高斯性1.2.2 均值函数1.2.3 协方差函数(或核函数) 1.3 核函数1.4 高斯过程回归(Gauss

【学习笔记】 陈强-机器学习-Python-Ch15 人工神经网络(1)sklearn

系列文章目录 监督学习:参数方法 【学习笔记】 陈强-机器学习-Python-Ch4 线性回归 【学习笔记】 陈强-机器学习-Python-Ch5 逻辑回归 【课后题练习】 陈强-机器学习-Python-Ch5 逻辑回归(SAheart.csv) 【学习笔记】 陈强-机器学习-Python-Ch6 多项逻辑回归 【学习笔记 及 课后题练习】 陈强-机器学习-Python-Ch7 判别分析 【学

系统架构师考试学习笔记第三篇——架构设计高级知识(20)通信系统架构设计理论与实践

本章知识考点:         第20课时主要学习通信系统架构设计的理论和工作中的实践。根据新版考试大纲,本课时知识点会涉及案例分析题(25分),而在历年考试中,案例题对该部分内容的考查并不多,虽在综合知识选择题目中经常考查,但分值也不高。本课时内容侧重于对知识点的记忆和理解,按照以往的出题规律,通信系统架构设计基础知识点多来源于教材内的基础网络设备、网络架构和教材外最新时事热点技术。本课时知识

线性代数|机器学习-P36在图中找聚类

文章目录 1. 常见图结构2. 谱聚类 感觉后面几节课的内容跨越太大,需要补充太多的知识点,教授讲得内容跨越较大,一般一节课的内容是书本上的一章节内容,所以看视频比较吃力,需要先预习课本内容后才能够很好的理解教授讲解的知识点。 1. 常见图结构 假设我们有如下图结构: Adjacency Matrix:行和列表示的是节点的位置,A[i,j]表示的第 i 个节点和第 j 个