MATLAB 语言程序设计基础(1)

合集下载

第三章 matlab程序设计基础

第三章 matlab程序设计基础
y
3. 程序控制流 3.多分支if语句
• 多分支if语句格式为:
if 条件1 语句组1 elseif 条件2 语句组2 …… elseif 条件m 语句组m else 语句组m+1
end
3. 程序控制流
• 例 输入一个字符,若为大写字母,则输出其后继字符,若为 小写字母,则输出其前导字符,若为数字字符则输出其对应 的数值,若为其他字符则原样输出。 – 程序如下:
c=input('请输入一个字符','s'); if c>='A' & c<='Z' disp(setstr(abs(c)+1)); elseif c>='a'& c<='z' disp(setstr(abs(c)-1)); elseif c>='0'& c<='9' disp(abs(c)-abs('0')); else disp(c); end
分类:脚本文件(Script File)和函数文件(Function File)。 主要区别。
1. M文件 脚本文件
没有输入和输出 由一系列指令组成 可在命令窗口直接运行 产生的所有变量存储在workspace中。 例 test.m。
1. M文件 例 脚本M文件实例
脚本M文件实例,查找10 ~100所有素数。
1. M文件
• 函数文件examp.m: function fout=charray(a,b,c) %举例说明函数文件名与函数名不同 if nargin==1 fout=a; elseif nargin==2 fout=a+b; elseif nargin==3 fout=(a*b*c)/2; end • 命令窗口: x=[1:3];y=[1;2;3]; examp(x) examp(x,y') examp(x,y,3)

第二章_MATLAB语言基础_第1节-赵亦欣

第二章_MATLAB语言基础_第1节-赵亦欣
ans的值将在下一条表达式语句执行后被刷新。
第2章 MATLAB语言基础
【例2.8】 表达式语句。 >> sqrt(2)*exp(-1*3) ans = 0.0704 >> 8*3+6/4 ans = 25.5000
表达式语句 运算结果 执行下一条 表达式语句 后,结果将 被刷新
第2章 MATLAB语言基础
第2章 MATLAB语言基础
2.1 基础知识
2.1.3 变量和语句
变量名区分字母大小写;不超过31个字 符,31个以后的字符将被忽略,字符之间不 能有空格;必须以字母打头,之后可以是任意 字母、数字或下画线;不允许使用标点符号。
第2章 MATLAB语言基础
MATLAB的一条命令行就是一条语句,
格式与书写数学表达式相近。 在命令窗输入语句,该语句可被解释运 行并给出运行结果。
第2章 MATLAB语言基础
(1)永久变量不能用clear命令清除; (2)永久变量不响应Who, Whos命令; (3)永久变量可以等于表2-1中的值; (4)被赋值的永久变量,在clear命令清除内 存或命令窗关闭再打开后,将被设为默认值;
(5)允许被0除。
第2章 MATLAB语言基础
2.1 基础知识
第2章 MATLAB语言基础
【例2.11】复数矩阵的生成及运算。 >> A=[1 2; 3 4]+[5 6; 7 8]*I % 复数矩阵的输入。 分别由实部矩阵和虚部矩阵组合而成 A= 1.0000 + 5.0000i 2.0000 + 6.0000i 3.0000 + 7.0000i 4.0000 + 8.0000i >> B=[1+2i 3+4i; 5+6i 7+8i] % 复数矩阵的输入。 直接由复数构成矩阵 B= 1.0000 + 2.0000i 3.0000 + 4.0000i 5.0000 + 6.0000i 7.0000 + 8.0000i >> C=A*B % 复数矩阵相乘。 复数矩阵乘法, 1.0e+002表 示标量100,矩阵运算中,存在直 C= 角坐标和极坐标之间的转换 1.0e+002 * -0.3500 + 0.4900i -0.5100 + 0.7700i -0.3900 + 0.7700i -0.5500 + 1.2100i

MATAB程序设计基础重要基础知识点总结

MATAB程序设计基础重要基础知识点总结

MATAB程序设计基础重要基础知识点总结(全)MATAB是一种高级的数值计算和科学计算软件,具备强大的矩阵运算能力。

以下是MATLAB的重要基础知识点:一、变量和数据类型了解如何定义变量、使用不同的数据类型(例如数值型、字符串型、逻辑型)以及它们之间的转换。

1.数值型数据类型包括整数(integers)、浮点数(floats)和复数(complex numbers)。

可以使用不同的精度和符号位来定义这些数据类型。

2.字符串数据类型表示一个或多个字符组成的文本。

字符串在MATLAB中用单引号或双引号括起来,例如'hello' 或"world"。

3.逻辑型数据类型只能取两个值之一,即true(真)或false(假)。

在MATLAB中,逻辑值通常用于控制流程和条件判断。

4.矩阵和数组型数据类型MATLAB中最基本的数据结构是矩阵和数组。

通过向量、矩阵和多维数组来表示和操作数据。

可以使用预定义的函数或运算符来创建、访问和处理这些数据类型。

5.结构体数据类型可以用于将不同类型的数据组合在一起。

结构体可以由不同类型的字段组成,每个字段都有自己的名称和值。

6.元胞数据类型可以容纳不同类型的元素,并且每个元素可以是不同的大小和形状。

元胞数组在MATLAB中常用于存储和传递异构数据。

7.函数和类数据类型MATLAB中还可以定义自己的函数和类,这些数据类型可以对数据进行封装和操作。

二、数组和矩阵操作掌握创建数组和矩阵的方法,并了解常用的矩阵运算,如加法、减法、点乘、叉乘等。

创建数组和矩阵:可以使用方括号[] 或函数来创建数组和矩阵。

例如,a = [1, 2, 3] 可以创建一个包含整数1、2 和 3 的行向量;b = [4; 5; 6] 可以创建一个包含整数4、5 和 6 的列向量;c = [1, 2; 3, 4] 可以创建一个2x2 的矩阵。

访问数组和矩阵元素:可以使用下标(索引)来访问数组和矩阵中的元素。

MATLAB基础及程序设计

MATLAB基础及程序设计

一、变量和数值
➢Matlab的变量有一定的命名规则: (1)变量名区分大小写。’A’与’a’是不同的变量。 (2)变量名不能超过63个字符。 (3)变量名必须以字母开头。 (4)关键字(如if,while等)不能作为变量名。 (5)有一些系统自动定义的特殊变量,如pi,inf,i等。
➢特殊变量 ans: 用于结果的缺省变量名 pi: 圆周率 eps:计算机的最小数 inf:无穷大
>>syms a b c x f2=a*x^2+b*x+c 上面的语句即创建了符号变量a,b,c,x,又创建了符号表达 式,f1,f2符号表达式相同。
二、符号表达式的代数运算: 特点: 1、传统的数值运算由于计算机的有效位数的 限制,会产生误差。符号运算则可以避免。
2、符号运算可以得出完全的封闭解或任意精 度的数值解。
六、代数方程组的求解
[例] x1+x2=5 2x1+x2=7 x1+2x3=4
求解x1,x2。 a=[1 1 0;2 1 0;1 0 2];b=[1;5;5]; x=a\b x=
2 3
七、多项式拟合 多项式拟合是用一个多项式来逼近一组给定的 数据,在数据分析上是常用的方法,使用polyfit 函数来实现.拟合的准则是最小二乘法。 [例] x0=0:0.1:1;
2、用MATLAB函数创建 + rand —— 随机矩阵 >>rand(m,n)
+eye —— 单位矩阵 >>eye(m,n)
+zeros ——全部元素都为0 的矩阵
+>>zeros(m,n) +ones ——全部元素都为1的 矩阵
+ >>ones(m,n)

控制系统仿真_薛定宇第二章_MATLAB语言程序设计基础

控制系统仿真_薛定宇第二章_MATLAB语言程序设计基础

控制系统仿真与CAD 国家级精品课程
2014-12-31
24/70 24
2.4.4 匿名函数与inline函数

不用编写*.m,定义函数的方法
可以动态地定义函数,在科学运算中有用 二者功能重复,后者远差于前者,不再使用


匿名函数: 举例
控制系统仿真与CAD 国家级精品课程
2014-12-31

控制系统仿真与CAD 国家级精品课程
2014-12-31
3/70 3
2.1.1 常量与变量

常量(保留字符串)
eps: 机器的浮点运算误差限,默认值 i和j:虚数单位,-1的平方根,i=sqrt(-1) Inf: 无穷大量,-Inf为负无穷大 NaN:不定式(Not a Number) pi:圆周率p的双精度浮点表示
25/70 25
2.5 二维图形绘制



可以绘制出各种二维曲线 可以由数据绘图,也可以由格式绘图 本节主要内容
基本二维图形绘制语句 带有其他选项的绘图函数 二维曲线的标注方法 在MATLAB图形上添加文字标注 特殊图形绘制函数及举例 隐函数的曲线绘制

控制系统仿真与CAD 国家级精品课程


符号型数据结构

syms 命令申明符号变量
控制系统仿真与CAD 国家级精品课程
2014-12-31
5/70 5

vpa(A) 显示符号变量

例2-1 显示e的前300位 其他数据结构



int8() 、int16() 、int32() 、uint16() 和 uint32() 字符串型数据:MATLAB字符串是用单引号括起来的 多维数组:三维数组是一般矩阵的直接拓展。 单元数组:多变量系统的频域响应数据存储 类与对象:传递函数对象、状态方程对象

MATLAB21

MATLAB21

3. 矩阵元素的删除
删除操作就是简单地将其赋值为空矩阵(用[]表示)。
4. 生成大矩阵
在MATLAB中,可以通过方括号“[]”实现将小矩阵联 接起来生成一个较大的矩阵。
5. 矩阵的翻转
triu(X) 产生X矩阵的上三角矩阵,其余元素补0。 tril(X) 产生X矩阵的下三角矩阵,其余元素补0。 flipud(X) 使矩阵X沿水平轴上下翻转。 fliplr(X) 使矩阵X沿垂直轴左右翻转。 flipdim(X,dim) 使 矩 阵 X 沿 特 定 轴 翻 转 。 dim=1 , 按 行 维 翻 转 ; dim=2,按列维翻转。 rot90(X) 使矩阵X逆时针旋转900
2. 子矩阵块的产生 (1)子矩阵是从对应矩阵中取出一部分元素构 成,用全下标和单下标方式取子矩阵。 如a([1 3],[2 3]) ,a([1 3;2 6]) 等。 (2)利用冒号表达式获得子矩阵 ①A(:,j)表示取A矩阵的第j列全部元素;A(i,:) 表示A矩阵第i行的全部元素;A(i,j)表示取A矩 阵第i行、第j列的元素。 ②A(i:i+m,:)表示取A矩阵第i~i+m行的全部元 素;A(:,k:k+m)表示取A矩阵第k~k+m列的全 部元素,A(i:i+m,k:k+m)表示取A矩阵第i~i+m 行内,并在第k~k+m列中的所有元素。
例 2-1 计算表达式的值,并将结果赋给变量x, 计算表达式的值,并将结果赋给变量x 然后显示出结果。 然后显示出结果。 MATLAB命令窗口输入命令 命令窗口输入命令: 在MATLAB命令窗口输入命令:
>>x=(5+cos(47*pi/180))/(1+sqrt(7)-2*i) x=(5+cos(47*pi/180))/(1+sqrt(7

第1章matlab基础知识

第1章matlab基础知识


2.Edit菜单




Undo:取消输入。 Redo:重新输入。 Cut:剪切。 Copy:复制。 Paste:粘贴。 Paste to Workspace:将所选内容粘贴到 工作空间。 Select All:全选。 Delete:删除。 Find:寻找。 Find Files:在指定的文件或路径中寻找。 Clear Command Window:清除命令窗口 中的显示。 Clear Command History:清除命令历史窗 口中的显示。 Clear Workspace:清除工作空间变量。

在命令窗口中运行的命令,都会被保留在Command History(命令历史)窗口中,并且标明指令运行 的日期和时间。
1.3.5 Workspace

用于存储各种变量 和结果的内存空间 ,其中显示了工作 空间中所有变量的 名称、大小、最大 及最小值,可以对 变量进行观察、编 辑、保存和删除等 操作。



(2)直观
程序语言设计符合人们的思维习惯和数学表达方式。 丰富的二、三维图形及动画,对计算结果进行可视化 显示,给用户以直观的认识。 Simulink的仿真环境,省去了用户画图布线的烦恼。


(3)简单
丰富的函数库和工具箱,使用户不必进行具体代码的 编写,只需调用简单的函数指令,就可以执行任务操 作,解决问题。 所有数值对象都默认以双精度浮点类型数组存储,无 须用户进行数据类型的声明和转换。

Save Layout:保存当前布局。 Organize Layout:组织布局。 Command Window:显示或隐藏命令窗口。 Command History:显示或隐藏命令历史窗口。 Current Folder:显示或隐藏当前文件夹。 Workspace:显示或隐藏工作空间。 Help:显示或隐藏帮助。 Profiler:显示或隐藏性能分析器。 File Exchange:用于实现文件的切换。 Editor:显示或隐藏编辑器。 Figures:显示或隐藏图形显示窗口。 Web Browser:打开网络浏览器。 Variable Editor:用于显示变量编辑器。 Comparison Tool:打开对照工具。 Toolbars:显示或隐藏工具栏。 Titles:显示或隐藏窗体标题。

1第一章 Matlab语言概述

1第一章 Matlab语言概述

(Ⅰ)基础篇第一章 Matlab语言概述§1.语言特点MATLAB是Mathworks公司于20世纪80年代推出的数值计算软件。

得到了广泛的应用。

MATLAB的全称是Mateix Laboratory,意思是矩阵实验室。

它是以矩阵运算为基础的新一代程序语言。

MATLAB是集数学运算、图形处理、程序设计和系统建模为一体的著名编程语言软件,它具有功能强大、使用简单等优点,是进行科学研究和工程实践的有力工具。

与Fortran和C相比,MATLAB语句更简洁、明了,更加符合人们的思维习惯。

并且还具有良好的数据可视化功能。

MATLAB包括两部分:基本部分-主要指数据计算和可视化功能。

扩展部分-主要指工具箱。

§2 基本操作和简单语句输入1. 简单语句输入(简单计算器用法)例1:计算a⨯y÷⨯=(a = 2,b =3,c = 5 )+acbb[程序] 在命令窗口输入>> a=2;b=3;c=5;>> y=a*b+c*b/a 回车[输出] y =13.5000例2:计算64(tan3⨯+45)/2760cos[程序] >> (tan(pi/4)+cos(pi/3))*27^(1/3)/sqrt(64)ans =0.56252. 变量表达式数值(1)变量* matlab语句一般形式为:变量=表达式(或数),若变量和“=”省略,输出时自动建立“ans”默认变量。

* 对大小写敏感,如sqrt(平方根)对,而SQRT,Sqrt全错。

* 变量名第一个字符必须是英文字母,最多可包含31个字符,(含英文、数字、下连符)。

不得包含空格和标点。

* 系统遇到一个新变量名时,它会自动生成变量,若该变量早已存在,系统会自动更新内容。

表1-1 默认预定义变量(永久变量)例3:无穷大的使用>> x =1/0Warning: Divide by zero.x =Inf* 在MATLAB中这样的操作不会引起程序执行中断,只是在给出警告信息的同时,用一个特殊的符号Inf来表示。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

%第二章MATLAB 语言程序设计基础% % MATLAB 基本命令简介% MATLAB 程序设计语言基础% 基本数学运算% MATLAB语言流程控制% MATLAB 函数的编写% 二维图形绘制% 三维图形绘制% 二维图形% 基本平面% plot% fplot%f(x)%fplot('tanh',[-2 2])% loglog%双对数图形% semilogx%x轴对数图形% semilogy%zoom%meshgrid% 特殊平面%polar%bar%barh%compass%comet%errorbar%feather%hist 二维直方图%histc 直方图记数%rose 角度直方图%stairs%stem 柄形图%stem3%pie 饼形图% 注释命令% grid% gtext% text% legend% title% xlabel,ylabel% 三维图形%% 三维曲线,面填色命令% comet3 三维彗星% fill3% 三维图形等高线%clabel 二维等高线图中添加高度标签% [x,y] = meshgrid(-2:.2:2);% z = x.*y.*exp(-x.^2-y.^2);% [C,h] = contour(x,y,z);% clabel(C,h);%contour%contourc 低级等高线图形计算命令。

计算等高线矩阵c %contour3 三维空间等高线图%contourf 填充二维等高线图%contour,contour3和contourf%pie3% 曲线与网格图%mesh%surf%surfc%surfl%waterfall% [X,Y,Z] = sphere(30);% %[X,Y,Z] = peaks(30);% waterfall(X,Y,Z)% surf(X,Y,Z)% cylinder% sphere% 其他表现形式% pcolor 伪彩色% quiver 矢量图或速度图% slice% axis% hidden 显示隐含线条% shading 颜色色调属性% caxis 颜色坐标轴刻度% [X,Y,Z] = peaks(30);% C = Z;% mesh(peaks)% hidden off% caxis([-1 1])% view% viewmtx 视点转换矩阵% surfnorm 显示三维曲面法线% [x,y,z] = cylinder(1:10);% surf(x,y,z)% figure% surfnorm(y,x,z)% axis([-12 12 -12 12 -0.1 1])% 通用函数% 图形对象句柄% figure% line% patch% surface% image% uicontrol% uimenu% 轴和控制命令% axes% cla% gca% % 图形句柄操作% gco 返回当前对象的句柄% get 获取对象属性% set% reset% delete% findobj%% % 图形窗口控制% subplot% hold% gcf% clf% close% newplot%% % 颜色与光照模式% % 颜色控制% colormap 设置或获取当前色图% bone 淡兰色的灰度刻度化的色图% cool 阴影的青色和品红的色图% copper 线性铜色色图% flag 红、白、兰、黑的色图% gray 线性灰度化的色图% hot 黑、红、黄、白的色图% hsv 色度-饱和度值的色图% jet% pink 带柔和阴影粉红色图% prism 三棱镜色图%% % 色图控制% brighten 增亮或变暗色图% colorbar 指定颜色刻度的颜色条% contrast 提高灰度色图的对比度% rgbplot 画出色图% diffuse 漫反射率% specular 镜面反射率% surfl 三维带光照模式的阴影图%循环结构%for i=V%%end% while()%% end%选择结构% if()%% elseif()%% else%% end% switch% case%% case%% otherwise%% end% try,% catch,% end%Matlab内部的每一个数据元素都是用双精度数(double)来表示和存储的。

%变量输出时用户可以用format命令设置或改变输出格式。

%符号型数值可采用变精度函数求值vpa(A), 或vpa (A,n)%find(), all(), any()%[s1,how]=simple(s) 化简并返回实际采用的化简方法其中,s为原始表达式,s1为化简后表达式,how为采用的化简方法。

%subs(B,old ,new)% function [d,e]=jia(m,n)% c=m+n;% d=m-n;% e=m*n;%% end% function A=myhilb(m,n)% %产生A=MYHILB(N,M)或A=MYHILB(N);% if nargin==1% m=n;% else% if nargin==0 | nargin>2% error('Wrong number of input arguments.'); % end% end%% A1=zeros(m,n);% for i=1: m% for j=1:n% A1(i,j)=1/(i+j-1);% end% end% if nargout>1% error('Too many output arguments.');% end% if nargout==1% A=A1;% else% if nargout==0% disp(A1);% end% end% function k=my_fact(n)% if nargin~=1, error('输入变量个数错误,只能有一个输入变量'); end % if nargout>1, error('输出变量个数过多'); end% if abs(n-floor(n))>eps | n<0 % 判定n 是否为整数% error('n 应该为非负整数');% end% if n>1 % 如果n>1, 进行递归调用% k=n*my_fact(n-1);% elseif any([0 1]==n) % 0!=1!=1% k=1;% end% %syms a b x y% %[x,y]=solve(a*x-b*y-1,a*x+b*y-5,x,y)% x=0:0.05:2*pi% y=sin(x)% %plot(x,y)% polar(x,y)% hold% stem(x,y)% A=[3 5 7 10];% x1=[1 2];% A(x1)% A=[3 5 7 10];% x1=[1 2];% A(x1)% x2=[true false true];% A(x2)% x3=[1.2 2.3];% A(x3)% function [m,s]=findsum( k) % s=0; m=0;% while (s<=k)% m=m+1;% s=s+m;% end%k=4,1;m1,s1;2,m2,s3;3,m3,s6% a=[1,2,8 ;1 2,4]% [X,Y,Z]=peaks(30);% surf(X,Y,Z)% axis([-3,3,-3,3,-10,10])% axis off;% shading interp;% colormap(hot);% m=moviein(20);% for i=1:20% view(-37.5+24*(i-1),30)% m(:,i)=getframe;% end% movie(m,2);% %syms a b x y% %[x,y]=solve(a*x-b*y-1,a*x+b*y-5,x,y) % x=0:0.05:2*pi% y=sin(x)% %plot(x,y)% polar(x,y)% hold% stem(x,y)% A=[3 5 7 10];% x1=[1 2];% A(x1)% A=[3 5 7 10];% x1=[1 2];% A(x1)% x2=[true false true];% A(x2)% x3=[1.2 2.3];% A(x3)% function [m,s]=findsum( k) % s=0; m=0;% while (s<=k)% m=m+1;% s=s+m;% end%k=4,1;m1,s1;2,m2,s3;3,m3,s6% a=[1,2,8 ;1 2,4]% [X,Y,Z]=peaks(30);% surf(X,Y,Z)% axis([-3,3,-3,3,-10,10])% axis off;% shading interp;% colormap(hot);% m=moviein(20);% for i=1:20% view(-37.5+24*(i-1),30)% m(:,i)=getframe;% end% movie(m,2);%第三章微积分问题的计算机求解%第三章,微积分问题的计算机求解%% 微积分问题的解析解% 函数的级数展开与级数求和问题求解% 数值微分% 数值积分问题% 曲线积分与曲面积分的计算%3.1 微积分问题的解析解%simple() pretty()%极限问题的解析解% 格式1:L= limit( fun, x, x0)% 格式2:L= limit( fun, x, x0, ‘left’或‘right’)% 格式:L1=limit(limit(f,x,x0),y,y0)或L1=limit(limit(f,y,y0), x,x0)% syms x a b;% f=x*(1+a/x)^x*sin(b/x);% L=limit(f,x,inf)% x=-0.1:0.001:0.1;% y=(exp(x.^3)-1)./(1-cos(sqrt(x-sin(x))));% plot(x,y,'-',0,12,'o')%函数导数的解析解%y=diff(fun,x) %求导数%y= diff(fun,x,n) %求n阶导数%f=diff(diff(f,x,m),y,n)%f=diff(diff(f,y,n),x,m)%J=jacobian(Y,X)%F=-diff(f,xj)/diff(f,xi) 隐函数求导% syms x;%f=sin(x)/(x^2+4*x+3);% f1=diff(f);% syms x y;% z=(x^2-2*x)*exp(-x^2-y^2-x*y);% zx=simple(diff(z,x))% zy=diff(z,y)% [x1,y1]=meshgrid(-3:.2:3,-2:.2:2);% z1=subs(z,{x,y},{x1,y1});% surf(x1,y1,z1), axis([-3 3 -2 2 -0.7 1.5])% contour(x1,y1,z1,30), hold on % 绘制等高线% zx1=subs(zx,{x,y},{x1,y1});% zy1=subs(zy,{x,y},{x1,y1});% quiver(x1,y1,zx1,zy1) % 绘制引力线%积分问题的解析解%F=int(fun,x)%I=int(f,x,a,b)%I=int(f,x,a,inf)% syms x; I1=int(exp(-x^2/2),x,0,1.5) %无解% >> vpa(I1,70)% >> I2=int(exp(-x^2/2),x,0,inf)%顺序的改变使化简结果不同于原函数,但其误差为0,表明二者实际完全一致。

相关文档
最新文档