[转载]matlab 基本语句
matlab 基本语句
1.循环语句for
for i=s1:s3:s2
循环语句组
end
解释:首先给i赋值s1;然后,判断i是否介于s1与s2之间;如果是,则执行循环语句组,i=i+s3(否则,退出循环.);执行完毕后,继续下一次循环。
例:求1到100的和,可以编程如下:
sum=0
for i=1:1:100
sum=sum+i
end
这个程序也可以用while语句编程。
注:for循环可以通过break语句结束整个for循环.
2.循环语句while
例:sum=0;i=1;
while(i<=100)
sum=sum+i;i=i+1;
end
3.if语句
if(条件)
语句
end
if(条件)
语句
else
语句
end
if(条件)
语句
elseif
语句
end
4.关系表达式:
=,>,<,>=,<=,==(精确等于)
5.逻辑表达式:|(或),&(且)
6.[n,m]=size(A)(A为矩阵)
这样可以得到矩阵A的行和列数
n=length(A),可以得到向量A的分量个数;如果是矩阵,则得到矩阵A的行与列数这两个数字中的最大值。
7.!后面接Dos命令可以调用运行一个dos程序。
8.常见函数:
poly():为求矩阵的特征多项式的函数,得到的为特征多项式的各个系数。如a=[1,0,0;0,2,0;0,0,3],则poly(a)=1 -6 11 -6。相当于poly(a)=1入^3+(-6)入^2+11入+(-6)。
compan():可以求矩阵的伴随矩阵.
sin()等三角函数。
MATLAB在数学建模中的应用(3)
一、程序设计概述
MATLAB所提供的程序设计语言是一种被称为第四代编程语言的高级程序设计语言,其程序简洁,可读性很强,容易调试。同时,MATLAB的编程效率比C/C++语言要高得多。
MATLAB编程环境有很多。常用的有:
1. 命令窗口
2. word窗口
3. M-文件编辑器,这是最好的编程环境。
M-文件的扩展名为“.m”。M-文件的格式分为两种:
①l M-脚本文件,也可称为“命令文件”。
② M-函数文件。这是matlab程序设计的主流。l
保存后的文件可以随时调用。
二、MATLAB程序结构
按照现代程序设计的观点,任何算法功能都可以通过三种基本程序结构来实现,这三种结构是:顺序结构、选择结构和循环结构。其中顺序结构是最基本的结构,它依照语句的自然顺序逐条地执行程序的各条语句。如果要根据输入数据的实际情况进行逻辑判断,对不同的结果进行不同的处理,可以使用选择结构。如果需要反复执行某些程序段落,可以使用循环结构。
1 顺序结构
顺序结构是由两个程序模块串接构成。一个程序模块是完成一项独立功能的逻辑单元,它可以是一段程序、一个函数,或者是一条语句。
看图可知,在顺序结构中,这两个程序模块是顺序执行的,即先执行<程序模块1>,然后执行<程序模块2>。
实现顺序结构的方法非常简单,只需将程序语句顺序排列即可。
2 选择结构
在MATLAB中,选择结构可由两种语句来实现。
(1) if语句
if语句的最简单用法为:
if 表达式;
程序模块;
end
if语句的另一种用法为:
if 表达式
程序模块1
else
程序模块2
end
例1 使用if语句判断学生的成绩是否及格。
程序:
clear
n=input(’输入n= ’)
m=60;
if n<m,
r=’不及格’
else
r=’及格’
end
练习一:将例1写入M-文件编辑器,然后在command window 调用这个程序。
当针对多个条件进行选择时,可以采用下面的格式:
if 表达式1
程序模块1
elseif 表达式2
程序模块2
…… ……
elseif 表达式n
程序模块n
else
程序模块n+1
end
例2 将百分之的学生成绩转换为五分制输出。
程序:
clear
n=input(’输入n= ’)
if n>=90
chji=’优秀’
elseif n>=80
chji=’良好’
elseif n>=70
chji=’中等’
elseif n>=60
chji=’及格’
else
chji=’不及格’
end
练习二:将例2写入M-文件编辑器,然后在command window 调用这个程序。
(2) switch语句
switch语句可以替代多分支的if语句,而且switch语句简洁明了,可读性更好。其格式为:
switch 表达式
case 数值1
程序模块1
case 数值2
程序模块2
……
otherwise
程序模块n
end
其中的otherwise模块可以省略。
switch语句的执行过程是:首先计算表达式的值,然后将其结果与每一个case后面的数值依次进行比较,如果相等,则执行该case的程序模块;如果都不相等,则执行otherwise模块中的语句。如图3所示。
例3 用switch…case开关结构将百分制的学生成绩转换为五分制的成绩输出。
程序:
clear
x=58
switch fix(x/10)
case {10,9}
y=’优秀’
case 8
y=’良好’
case 7
y=’中等’
case 6
y=’及格’
otherwise
y=’不及格’
end
练习三:将例3写入M-文件编辑器,然后在command window 调用这个程序。
3 循环结构
循环结构的流程图如图4所示它可以多次重复执行某一组语句。循环是计算机解决问题的主要手段。
在MATLAB中,循环结构可以由两种语句结构实现。
(1) for…end 循环结构。其格式为:
for i=V,循环体结构,end
其中V为一个行向量,循环变量i每次从V中取一个数值,执行一次循环体的内容,如此下去,直到完成V中的所有分量,就自动结束循环体的执行。
例4 计算 s=12+22+52。
程序:
a=[1 2 5 ]; s=0;
for k=a,
s=s+k^2;
end,
s,
该例题只是为了说明for语句的格式,事实上,用下面的语句求和更为简单。
命令:
p=sum(a.^2)
练习四:建立MATLAB与word的连接,在新建的m-book中写入上面的程序,并用notebook菜单运行之。
循环结构里面还可以包含循环结构,形成多重循环。
例5 设计一个九九乘法表。
程序:
clear
for i=1:9
for j=1:9
a(i , j)=i*j;
end
end
a,
练习五:①直接在命令窗编写上面的程序。
②试运行下面的程序,并加以分析:
程序: disp(’ 九九乘法表 ’),for i=1:9,
for j=1:i,p{i}(j)=j*i;end,disp(p{i}),end
(2) while…end 循环结构。其格式为:
while (表达式)
循环结构体
end
例6 求MATLAB的相对精度
解:解题的思路是,让y值不断减小,直到MATLAB分不出1+y与1的差别为止。
程序:
y=1; while 1+y>1; y1=y; y=y/2; end,y1
说明:
①for循环与while循环的区别是,for语句的循环次数是确定的,而while语句的循环次数是不确定的。
②一定要注意在循环结构体内设置“修改条件表达式的语句”,以免进入“死循环”。
③一旦出现死循环,在命令窗用ctrl+c可使程序中止。
④注意程序的可读性。
练习六:在M-文件编辑器内编写上面的脚本文件,并利用菜单或快捷按钮运行之。
三、M-文件
M文件是包含MATLAB代码的文件。M文件按其内容和功能可分为脚本M文件和函数M文件这两大类。
1、脚本M文件
脚本M文件是许多MATLAB代码按顺序组成的命令集合,不接受参数的输入和输出,与MATLAB工作区共享变量空间。脚本文件一般用来实现一个相对独立的功能,比如对某个数据集进行某种分析、绘图,求解方程等等。
前面的几个例题都是脚本文件的类型。
2、函数M文件
MATLAB的M-函数是由function语句引导的,其基本格式如下:
function [输出形参列表] = 函数名 (输入形参列表)
注释说明语句段,由%引导;
函数体语句
函数文件需要在M-文件编辑器中编写。写完以后,按照当前的搜索路径保存。以后就可以随时调用这个函数了。
与脚本M文件不同的是,调用函数M文件时需要输入自变量的实际值。
随便打开一个M-文件看一看:
open lsqlin
编程实例
例7. 定义一个函数 f(x)=[sin(x)]2, 其中x以“度”为单位。然后再调用该函数。
解:在M-文件编辑器内写入下面的文件:
function y=sinsd(x)
%自变量x以“度”为单位。
%
%白城师院
%数学建模协会,2007-5-12
a=x/180*pi;
y=sin(a).^2;
将上面的文件保存之后即可随时调用。
命令:
t=sinsd(45)
t =
0.5000
命令:
help sinsd
命令:
t=sinsd([45,60])
t =
0.5000 0.7500
表明该函数对元素群运算有效。上面的语句相当于
命令:
x=[45,60];t=sinsd(x)
t =
0.5000 0.7500
命令:
x=[45,60;30,90];f=sinsd(x)
f =
0.5000 0.7500
0.2500 1.0000
将源文件中最后一行的“.”去掉,再运行以上两条命令,我们会发现什么?
例8. 在MATLAB中,一个函数可以调用其它函数,也可以调用自身,即递归调用。下面利用递归算法编写一个函数,用来计算Fibonacci数列的第k项。
Fibonacci数列:
1,1,2,3,5,8,13,21,……
M-函数文件:
function a=my_fibo(k)
if k==1|k==2,a=1;
else,a=my_fibo(k-1)+my_fibo(k-2);end
将这个文件写入M-文件编辑器并以名称“my_fibo.m”保存,以后就可以调用这个函数。
递归算法无疑是解决某一类问题的有效方法,但不宜滥用,因为它的运算速度往往很慢。
命令:
tic, n= my_fibo(26) ,toc
n =
121393
elapsed_time =
34.4290
下面我们尝试用一般的循环语句来求解这个问题。
程序:
tic,n=[1,1];for k=3:100,n(k)=n(k-1)+n(k-2);end,toc,
elapsed_time =
0.0100
命令:
n(1:26)
ans =
Columns 1 through 8
1 1 2 3 5 8 13 21
Columns 9 through 16
34 55 89 144 233 377 610 987
Columns 17 through 24
1597 2584 4181 6765 10946 17711 28657 46368
Columns 25 through 26
转载于:https://www.cnblogs.com/dreamsyeah/archive/2013/03/11/5878528.html
[转载]matlab 基本语句相关推荐
- matlab制作动画并保存,[转载]Matlab中动画的实现、制作和保存(转载Matlab技术论坛)...
Matlab中动画的实现.制作和保存(转载Matlab技术论坛) 本帖由Matlab技术论坛原创,原帖参见 http://www.matlabsky.com/thread-592-1-1.html 光 ...
- matlab循环选择语句怎么写,如何使用matlab循环语句
在matlab中使用for语句的方法和应用示例 1. 通用格式为: 对于x(循环变量)=数组(数组) 命令(执行的循环代码) 结束 2. 数组可以是数字或数组,例如输入: for a=5 for a= ...
- matlab 累加合,matlab循环语句for累加
Matlab for 循环语句 没仔细研究你那个拟合函数的用法. 不过像这种需要分段处理数据的情况很多,有种在 matlab 里很常用的技巧感觉你可以学学: 假设原始数据(xdata)是一列 100 ...
- matlab如何制作振型动画_Matlab中动画的实现、制作和保存(转载Matlab技术论坛)
Matlab中动画的实现.制作和保存(转载Matlab技术论坛) 本帖由Matlab技术论坛原创,原帖参见 http://www.matlabsky.com/thread-592-1-1.html 光 ...
- matlab作动态函数曲线图,[转载]Matlab中使用Plot函数动态画图方法总结
本帖最后由 sonictl 于 2012-12-31 12:18 编辑 请删除我 清楚超靠靠靠 没办法,一会儿限制这不能发表,那不能发表的.... [转载]Matlab中使用Plot函数动态画图方法总 ...
- matlab中if语句的分号,matlab if语句
摘要 matlab if语句为有条件执行语句.MATLAB计算表达式,如果产生一个逻辑真或者非零结果,然后就执行一条或者多条MATLAB命令语句.当有嵌套if时,每一个if必须和一个相应的end匹配. ...
- Matlab 常用语句
Matlab 常用语句 while 循环 while 表达式循环体end表达式为循环条件 for 循环 for 循环变量 = 表达式1:表达式2 :表达式3循环体end表达式1为变量初值表达式2为步长 ...
- matlab for步长,matlab循环语句for怎么用
matlab循环语句for怎么用? matlab中for语句使用方法和应用实例 for循环语句 1.一般格式为: for x(循环变量) = array(数组) commands(执行的循环代码) e ...
- matlab 基本语句
matlab 基本语句 1.循环语句for for i=s1:s3:s2 循环语句组 end 解释:首先给i赋值s1:然后,判断i是否介于s1与s2之间:如果是,则执行循环语句组,i=i+s ...
最新文章
- Python实现一元及多元线性回归
- 蓝点lilac / ContextMenuManager:win10右键菜单清理工具
- 关于同步VSS服务器上的代码发生Eclipse里面的项目全部不见了
- tcp的3次握手4次挥手
- python 大智慧股池_大智慧的一般设置及股票池的安装步骤、使用方法
- gie拉取Can‘t update master has no tracked branch
- 挖金矿问题(c++求解)
- html 360登录自动填写,怎么让360安全浏览器记住以前登陆过的帐号和密码,每次都填很麻烦...
- 疫情肆虐,延迟返工,今年的“金三银四”还能照常进行吗?
- 工具类批量修改照片的名字
- Mkz-Cloud 部署之路
- 小鼠心肌细胞培养方法
- Windows漏洞修复服务器,Windows Server 2008相关系统漏洞修复
- 常见的物联通讯协议(一)
- Word中插入高亮代码
- 恭喜河南建业冲上中超
- Image Pyramid(图像金字塔)
- git 版本回退 强推代码
- 文字转语音 相关软件
- 小程序 canvas 海报(图片、字体封装方法)解决导出海报模糊问题
热门文章
- 写给1987—1990年出生的同学,生活在80后和90后夹缝中的一代
- 毕设-基于STM32刷卡、指纹的门禁系统(进阶版-指纹模块的驱动)
- postgresql入门_PostgreSQL教程:PostgreSQL 10入门
- 漏洞修复:HTML5: Cross-Site Scripting Protection
- 深入 Android 源码系列(一)
- MOSS2007页面UI定制(无代码上手)
- English Sources
- 干货之如何利用Python程序赚钱【无标题】
- 山西中考计算机试题及答案,2019山西中考试题及答案汇总
- 清华华为发布“万词王”反向词典系统,入选AAAI 2020