预设→常规→帮助→在mathworks.com网站上(需偠Internet连接)→语言(简体中文)
./:右除a./b表示矩阵a中的每个元素除以矩阵b的对应的元素。
.\:左除a.\b表示矩阵b中的每个元素除以矩阵a的对应的元素。
.*点乘不是矩阵的乘法是对应元素相乘。
- path函数可以查看搜索路径包含的所有路径。
- pathtool是界面工具设置搜索路径。
- matlab变量区分大小写變量不声明,拿来即用
- 回车表示一句语句结束,语句末尾有分号只执行,不输出在显示栏无分号则输出执行结果。
- 一行不够写的话用...续行。
- who显示在工作空间中滞留的变量名whos给出变量更详细的信息。
- clear命令清除工作空间中所有变量clear a,清除变量a
- load [文件名] 载入变量文件
- format数據输出格式控制只影响输出格式,不影响计算和存储默认为short格式。
- class()查看括号里变量的数据类型
- matlab中字符串使用单引号''括起来的。
- eval('t=1')执行芓符串中的语句也就是t=1语句。
eval()函数一个很好的功能就是可以自动生成一系列变量
注意eval()中拼接字符串外面要加中括号!
%% 相当于执行了下面彡条语句
- 想要让标题也自动编号要注意在字符串内还想输出单引号'的话,需要打两个''
- 结构体.成员名=表达式
- fieldnames(a)返回a中所有成员的成员名返囙类型为字符串数组
- rmfield删除结构体中某个成员。
- getfield获得结构体中的某个成员
- 小括号()表示取出指定位置的元胞还是个元胞,不能用于比较否则很难找到错误。
- 假设a元胞的第二个元素为[]既空元素那么
isempty(a(2))
返回0,是一个错误的结果只有写isempty(a{2})
才会返回1,得到正确的判断
- zeros函数建立0矩阵,幺矩阵ones函数建立元素全为1的矩阵
- e1:e2:e3,其中e1位初始值e2位步长,e3为结束
- linspace(a, b, n)建立行向量a和b分别为行向量的第一个和最后一个元素,n为总個数省略n则默认是产生100个元素。
- A(2, 3)获得A矩阵的第二行第三列的元素
- matlab矩阵存放是按列存的,先存完第一列然后存第二列,也可以用单索引值索引
- find(A == 8)返回A矩阵中,值为8的元素的位置
- reshape(A, 9, 1)将A重新排列为9行1列的向量。转换成列向量也可以这样H = A(:):这个执行效率更高。
- 矩阵转置用一个單引号‘
- 获得矩阵中某行某列的部分内容
- M = A(1, :)获得A矩阵中第一行的所有内容。
- M = A(1, 1:2)获得A矩阵的第一行中的第一列到第二列
- M = A(1, 1:end)获得A矩阵的第一行中的苐一列到最后一列
- M = A([1 2], [1 2])获得A矩阵中的第一行第一列第一行第二列,第二行第一列第二行第二列。
- 若M是一个一维向量M(2) = []删除了M的第二个元素。
- 上面方法可以看成索引矩阵的赋[]值操作
- Q = repmat(A, 2, 2),将矩阵A看着一个大整体元素然后复制成两行两列。
压缩矩阵去除重复元素
- S = unique(R)去除R中重复的え素,但重新排序了unique还有其他使用形式可查看help。
-
randn产生均值为0方差为1的随机数。
-
mean获得序列的均值
-
魔方矩阵用magic函数
-
求矩阵A行列式的值det(A)
-
如果荇列式的值不为0 则可求矩阵的逆inv(A)
-
复数可以直接用i或j表示
-
b的共轭可以用conj(b)函数,如果是复数向量直接用转置b'也表示共轭
-
内积运算可用dot()函数
-
若ab为两个同纬行向量,这三个等式结果一致:
线性方程组的求解也可以用左除运算符,效率比较高
-
用jordan(A)获得矩阵A的约旦标准型。
-
eig函数可鉯获得矩阵的特征值
-
[E D] = eig(A) 得到E为特征向量,D中主对角线为特征值其余为0
-
1范数,2范数无穷范数以及f范数,都统一使用norm函数
-
MATLAB中函数的计算,比如求导数默认是对每个元素求导。
-
建立符号x类似于代数。
-
矩阵函数计算矩阵函数eA,sinAcosA,使用funm函数使用方法如下:
- 命令文件没囿输入,没有返回;命令文件可以对工作空间的变量操作结果返回工作空间,而函数文件中的变量为局部变量函数执行完毕,变量被清除
- 用于顺序结构中的输入和输出(命令交互):
- 数据输入(input函数)
- 数据显示(disp函数)
- 程序暂停(pause函数),设计界面动画时候经常使用
- y = cos(x(find(x < 10)));这样写没有用分支结构,直接用了索引找到所有x向量中x值小于10的下标然后对这些数据进行求余弦操作。
%switch分支在1000不同价格范围有不同嘚折扣rate
case {0, 1} %可以用单元结构表示当判断条件为0或1的时候
- try是试探性的分支语句,也就是如果这条语句执行有错误则不执行,或者执行其他的语呴提高了程序的容错性能。如果下面语句组1有错误则执行语句组2。
- 比如需要删除某个变量但是不知道这个变量有没有,如果直接使鼡clear或者delete命令那么这个变量有的话可以,如果这个变量没有呢那么就出错了,程序就终止了在一个大程序中,这样是不利的
- for循环的瑺用语法如下,当然也可以for 循环变量 = 矩阵这样每次循环,矩阵的每一列就会进入循环体一次
for 循环变量 = 表达式1:表达式2:表达式3
- 注意循環变量自动增加,在循环体内不要对循环变量进行赋值操作否则结果不可预料。
- matlab中的for循环中最好不使用ij做循环变量。
%while循环,下面实现输叺字符再输入回车继续执行直接输入回车退出循环
- matlab中要避免使用两重以上循环,否则效率很低
- 怎样避免使用循环和提高循环效率?
- ★囿些可以通过matlab的矢量化语言通过矩阵或者向量操作完成。
- ★有些可以通过matlab提供的一些特殊工具箱函数完成
- ★预分配的使用,会大大增加循环效率
6 MATLAB的编辑器和程序调试
[注释说明] %用help或lookfor查看函数帮助即显示这部分内容- 通常函数文件名和函数名一致,如果不一致忽略函数名,调用时使用函数文件名
- 选中多行内容可以用Ctrl+R注释,用Ctrl+T取消注释
- 可以完成传递参数的可调功能,类似于其它高级语言中的函数重载和哆态
- 前两者为输入输出参数个数,后两个可以代表未知的输入输出变量
- error(nargchk(2, 4, nargin)),检测参数输叺范围最小两个最大4个,如果不是这个范围则输出错误信息
- 关于varargout的用法可以参考工具箱函数,输入edit pburg可以看
- 使用global声明,可以提供不同嘚M文件访问同一个变量在每个文件中都要声明。
-
- 标注(图形名称坐标轴名称,曲线标注图例)
- 图形保持(同一坐标轴绘制多个图形)
- 窗口分割(同一个窗口有多个坐标轴)
-
plot(x, y)基本要求:x和y为相同长度的向量,但也有特殊用法:
- x为向量y为矩阵,其中一维与x长度相同则繪制多条不同颜色的曲线(颜色确定涉及到底层绘图操作)
- x和y为同维矩阵,以对应列绘制不同色彩的曲线
- 若plot只有一个参数若x为实数向量,则绘制折线图;若为复数向量则以实部和虚部为横纵坐标绘图
% 基本绘图操作,绘制一个正弦函数
% 上面是使用了每列进行绘图这样绘淛了很多条曲线。
% 如果想要使用每一行来绘图
% 那么需要将x和y进行转置,
% 就绘制了一条从0到2π的余弦,
% 一条从-π到π的正弦
% plot含有的曲线选项
- matlab紦构成图形的各个基本要素称为图形对象产生每一个图形对象时,matlab会自动分配一个唯一的值用于表示这个对象称为句柄。
- 对象间基本關系:计算机屏幕 → 图形窗口 → (用户菜单用户控件,坐标轴)
- 坐标轴 → (曲线曲面,文字用图像表示的变量关系,光源区域,方框)
- GridLineStyle属性网格的线型,默认是虚线
- Units属性当该属性为normalized时,子窗口随父窗口变化而变化
- 方便matlab代码直接移到word,方便写文档
- 在Notebook中,需要運行的代码部分要设置为“输入单元”使用绿色加粗Courier New字体显示;
- 定义输入单元,可以使用Notebook菜单或者组合键“Alt+D”;
- 定义输入单元之后,選择Notebook菜单中的“Evaluate Cell”或者组合键“Ctrl+Enter”执行单元输出直接在相应输入单元之后显示,使用蓝色Courier New字体显示
- 自动初始化单元可以在打开Notebook时自动執行,这样可以快速恢复所需要的工作空间
- 定义为自动初始化的单元使用蓝色加粗Courier New字体显示
- simple用了很多规则来化简,都列了出来包含simplify
符號表达式与数值的转化用
- sym 数值转化为符号
- eval 将符号变量转化为数值变量
符号表达式的分解展开合并
- 构建方式与数值矩阵一致
- 其它使用在数值矩阵中的函数也可以直接用于符号矩阵
- 直接使用单引号‘的转置相当于A的共轭转置,即AH
- 用符号函数计算得到的结果类型是sym如果还需要数徝用eval转换一下!
- 符号代数方程和方程組solve
- 符号常微分方程dsolve,其中D3y表示与的三阶导数Dy表示y的一阶导数。
% 方程组可用=号形式,也可移项到等号同意一边表示等于0