变量命名规则1)变量名、函数名是对字母大小写敏感的2)变量名的第一个字符必须是英文字母3)变量名中不得包含空格、标点、运算符,但可以包含下连符。
预定义变量:ans(默认变量名)eps(浮点数相对精度)inf(无穷大)i、j(虚单元)nan(不是一个数)realmax(最大正实数)realmin(最小正实数)clf:清空图形窗
运算符与表达式
1)MATLAB面向复数设计,其所有运算定义在复数域上,所以对于方根问题,预算默认只返回一个主解。2)MATLAB面向矩阵/数组设计,标量被看做(1X1)的矩阵/数组3)自左至右执行4)指数>乘除>加减
MATLAB常用操作界面包括命令窗口、工作空间窗口(浏览器)、命令历史窗口、当前目录窗口、内存数组编辑器、M文件编辑/调试器、帮助导航/浏览器、图形窗口等
分号作用:抑制计算结果的显示,不显示计算结果的指令与其后指令的分隔,用作数组行间分隔符号。
逗号作用:显示计算结果的指令与其后指令的分隔;用作输入量与输入量之间的分隔符;用作数组元素分隔符号。
冒号作用:用以生成一位数组;用作单下标援引时,表示元素构成的长列;用作多下标援引时,表示那维上的全部元素。
MATLAB常用操作界面包括命令窗口、工作空间窗口(浏览器)、命令历史窗口、当前目录窗口、内存数组编辑器、M文件编辑/调试器、帮助导航/浏览器、图形窗口等。
简述MATLAB命令窗的主要作用: 命令窗口是MATLAB的主要交互窗口,用于输入命令并显示除图形以外的 所有执行结果。是MATLAB提供给用户使用的管理功能的人机界面,其管 理功能包括:管理工作空间中的变量、数据的输入输出的方式和方法,开发、 调试、管理M文件和M函数的各种工具。
工作浏览器:
该浏览器默认地位于当前目录浏览器的后台,该窗口罗列出matlab工作空间中所有的变量名,大小、字节数,在该窗中可对变量进行观察、图示、编辑、提取和保存。
当前目录浏览器:在该浏览器中,展示着子目录、M文件、MAT文件和MDL文件等。对该界面上的M文件,可直接进行复制、编辑和运行。界面上的MAT数据文件,可直接送入matlab工作内存。
历史指令窗记录着用户在MATLAB指令窗中所输入过的所有指令。历史记录包括:每次开启MATLAB的时间,每次开启MATLAB后在指令窗中运行过的所有指令。历史指令窗具有多种应用功能:单行或多行指令的复制和运行、生成M文件等。
空”数组的功用:在没有“空”数组参与的运算时,计算结果中的“空”
可以合理地解释“所得结果的含义”;运用“空”数组对其他非空数组赋值,
可以改变数组的大小,但不能改变数组的维数。
MATLAB函数的基本结构:典型M函数文件的结构:函数申明(定义)行(Function declaration line)、
H1行(The first help text line)、在线帮助文本(Help text)区、编写和修改记录、
函数体(Function body)。
简述MATLAB如何解释命令窗口输入的指令: 分配变量空间;调用函数;运算;返回结果;打印显示
简述MATLAB函数的基本结构: 函数的基本结构包括函数名,输入变量,输出变量,函数体等 matlab的函数的基本结构是 function 输出变量=函数名(输入变量) 函数体
指令窗的命令:cd(设置当前目录)clf(清除图形窗)clc(清除指令窗中显示内容)clear(清除内存变量)
查询指令who whos:查阅内存变量。删除变量和函数指令clear:Clear:清除工作空间中的所有变量Clear var1 var2:清除工作空间中的var1和var2变量Clear:
判断数组为逻辑组:all(a(:)>b(:))
矩阵的逆指令:inv(A)
一维数组生成法:
(1)“冒号”生成法
(2)逐个元素输入法
(3)运用函数生成
二维数组创建:
1.小规模数组直接输入法
2.中规模数组的数组编辑器创建法
3.中规模数组M文件创建
4.利用函数创建数组
二维数组的标示:
1.全下标法
2.单下标法
3.逻辑标示法
M文件有哪两种,各有什么特点:M脚本文件和M函数文件 特点:
M脚本文件:它只是一串按用户意图排列而成的MATLAB指令集合。脚本运行产生的所有变量都驻留在MATLAB基本工乍空间中。
M函数文件:从形式上看,与脚本文件不丗,函数文集件的第一行总是以function引导的函数申明行。MATLAB允许使用比标称贷数目少的输入、输出量,实现对函数的调用。从运行上看,与脚本文件运行不同,每当函数文件运行,MATLAB就会专门为它开辟一个临时工作空间。 函数空间随具体M函数文件的被调用而产生,随调用结束而删除。假如在函数文件中,发生对某脚本文件的调用,那么该脚本文件运行产生的所有变量都存放于那个函数空间之中,而不是放在基本空间之中。
绘制二维图形的一般步骤为:曲线数据准备、选定图形窗及子图位置、调用二 维曲线绘图指令、设置轴的范围、坐标分格线、图形注释、图形的精细操作。
可视化步骤:
曲线数据准备;
选定图形窗及子图位置;
调用曲线绘图指令;
设置轴范围`坐标分格线;
图形注释;
着色`明暗等处理(仅对三维图形使用);
视点`三度比(仅对三维....);
图形精细操作(图柄操作);
打印;
sym(‘Num’) 创建一个符号数字Num
sc = sym(‘Num’) 创建一个符号常数sc,该值等于Num
findsym(EXPR) 确认自由符号变量
findsym(EXPR,N) 距离x最近的N个自由符号变量
class(var) 给出var的数据类型
isa(var,’Obj’) 若为相同类型则返回1
whos 给出变量属性
sym(Num,’r\d\e\f’) 广义有理表达、十进制浮点、带eps误差、十六进制
double(Num) 双精度
digits 显示有效数字
digits(n) 设定有效数字
xs = vpa(x) 据x得到xs
xs = vpa(x,n) 据x得到n为有效数字
simple(EXPR) 化简
[RS,ssub]=subexpr (S, ssub) ssub置换子表达式,并重写S为RS
RES=subs(ES,old,new) 置换old
RES=subs(ES,new) 置换自由变量
创建一维数组
x=a:inc:b
x=linspace(a,b,n)
x=logspace(a,b,n)
zones(a,b) 全0数组
ones(a,b) 全1数组
eye(a) 单位矩阵
diag(a) 取对角
randsrc(a,b,S,1) 产生均布数组
randn( ‘state/twister’,0) 随机、重现
randn(a,b) 产生随机矩阵
A(r,c)指定行列 A(r,:)指定行 A(:,c)指定列A(:)全部元素 A(s)一维 A(L)列数组
size 大小
ndims 维数
diag 提取对角元素
repmat (S,a,b)模块数组
reshape(S,a,b) 改变行列
flipud 上下折叠
fliplr 左右折叠
rot90 扭转90
mean() 求平均值
非数寻访
isnan (R)判断非数
find (LR)查找
isempty 判空
例:二维曲线y=sin(t)sin(9t)
t=(0:pi/50:2*pi)';
k=0.4:0.1:1;
Y=cos(t)*k; //函数
subplot(2,2,1),plot(t,Y)
subplot(2,2,2),plot(t),
subplot(2,2,3),plot(Y),
subplot(2,2,4),plot(Y,t)//完
Grid on/off 画/不画分格线
Box on/off 当前坐标呈封闭/开启形式
Title(s) 书写图名
xlabel()ylabel横纵坐标轴名
Text(xt,yt,s)在(xt,yt)坐标处写字符注释s
例:三维曲线
t=0:pi/50:10*pi;
y1=sin(t);y2=cos(t);//参数方程
plot3(y1,y2,t);
title('helix'),
text(0,0,0,'origin');
xlabel('sin(t)'),ylabel('cos(t)'),zlabel('t');
grid
例:曲面
x=[0:0.15:2*pi];
y=[0:0.15:2*pi];
[X,Y]=meshgrid(x,y);
z=sin(Y)*cos(X);
surf(X,Y,z);
xlabel('x-axis'),ylabel('y-axis'),zlabel('z-label');
title('3-D surf')
例:采用数值计算方法,画出在[0,10]的曲线,并计算y(4.5)。
d=0.5;
tt=0:d:10;
t=tt+(tt==0)*eps;
y=sin(t)./t;
s=d*trapz(y)
ss=d*(cumtrapz(y))
plot(t,y,t,ss,'r'),hold on
y4_5=ss(find(t==4.5))
yi=interp1(t,ss,4.5), plot(4.5,yi,'r+')
yy=quad('sin(t)./t',0,4.5)
yy=quadl('sin(t)./t',0,4.5)
warning off
%方法2
clear
tt=0:0.1:10; warning off
for i=1:101
q(i)=quad('sin(t)./t',0,tt(i));
end
plot(tt, q)
y=quad('sin(t)./t',0,4.5)
f=@(x)(int('sin(t)/t',0,x)),vpa(f(4.5))
%方法3
syms x t y1 y2 y1i, y1=sin(t)./t, y1i=int(y1,t,0,x), y2=subs(y1i,x,4.5)
hold on ,plot(4.5,y2,'*m')