Matlab语法
第一节 基本数值计算
1. 变量:分为数值变量和字符变量
2. 常量:计算机中不变的量。如i、j、pi、NaN(不确定)、Inf(无穷大)
3. 字符变量:将字符串作为变量。有三种方法表示:
(1) 用单引号' '
(2) 用函数sym(' ')
(3) 用命令symbs
4. 举例
x=2 % 将2赋给变量x
y=3; % 有;表示在命令窗口不显示y的值
z=x^2 -y % 数值计算。输出结果为1
f='sin(x)' % 用单引号定义一个字符变量
g=sym('cos(y)') % 用函数sym(' ')定义一个字符变量
syms a b % 用命令syms定义字符变量。一般用于多符号变量的定义
u=2*a % 字符计算。输出结果为2*a
w=b^2-1 % 字符计算。输出结果为b^2-1
fg=f+g % 字符计算。输出结果为sin(x)+cos(y)
uw=u*w % 字符计算。输出结果为2*a*(b^2-1)
u/w % 字符计算。输出结果为2*a/(b^2-1)
第二节 矩阵构造及运算
Matlab中数据的结构形式就是一个矩阵。如x=2是一个1×1的矩阵
1. 矩阵的建立
(1) 直接输入法。
(2) 冒号法(1×N)。
(3) 函数法(特殊矩阵)。
(4) 矩阵的编辑(Array Editor)。
2. 向量
向量是1×N的特殊矩阵,即只有一行或者一列,称为N维向量。
3. 向量的点积与叉积
点积:dot(A,B)
叉积:cross(A,B)
4. 举例:
x=[1 2 3; 4 5 6; 7 8 9] % [...],元素之间用空格,行之间用分号。
y=0: 0.1 :1 % 不用[...],初值、步长、终值间用冒号。
w=eye(3) % 3阶单位矩阵。
u=rand(3) % 3阶随机矩阵。元素在0-1之间。
u1=rand(2, 3) % 2*3阶随机矩阵。元素在0-1之间。
q=randn(3) % 3阶随机矩阵。元素在0-1之间。元素符合正态分布。
q1=randn(2, 3) % 2*3阶随机矩阵。元素在0-1之间。元素符合正态分布。
s=magic(3) % 魔方阵。各行各列以及对角元素的和相等。
ss=zeros(3) % 3阶全零阵。
uu=ones(3) % 3阶全1阵。
5. 矩阵的加、减、乘、除
(1) 参与加、减运算的矩阵必须同维
(2) A/B时,A、B列数必须相同。A\B时,A、B行数必须相同。
(3) 矩阵左乘与右乘不同,左除与右除不同。(A*B不等于B*A,A\B不等于A/B)。
(4) 标量或函数与矩阵的运算等于该标量或函数与矩阵的每一个元素的运算。
6. 对矩阵的操作
6.1 对矩阵的元素操作:
(1) 提取矩阵A的第n行第m列的元素,表示为A(n, m)
(2) 提取矩阵A的第n行的所有元素,表示为A(n, :)
(3) 提取矩阵A的第m列的所有元素,表示为A(:, m)
(4) 将矩阵A的第n行第m列的元素重新赋值b,表示为A(n, m)=b
(5) 将矩阵A的第n行的所有元素重新赋值b,表示为A(n, :)=b
(6) 将矩阵A的第m列的所有元素重新赋值b,表示为A(:, m)=b
(7) 将矩阵A的第n行第m列的元素删除,表示为A(n, m)=[ ]
(8) 将矩阵A的第n行的所有元素删除,表示为A(n, :)=[ ]
(9) 将矩阵A的第m列的所有元素删除,表示为A(:, m)=[ ]
6.2 矩阵的部分操作:
Fliplr(A) % 矩阵左右翻转
Flipud(A) % 矩阵上下翻转
Flipdim(A, m) % 矩阵沿特定维(m)翻转
Rot90(A, k) % 矩阵逆时针旋转k*90度
Tiag(A, k) % 取矩阵对角线元素
Tril(A, k) % 取矩阵的下三角部分
Triu(A, k) % 取矩阵的上三角部分
注:k可以是正、负整数,但绝对值一般不大于矩阵的维数。
6.3 矩阵分析操作:
(1) 方阵A的行列式值,可表达为 det(A)
(2) 矩阵A的秩,可表达为 rank(A)
(3) 行列式值不为堆的方阵A,求逆矩阵可表达为 inv(A)
(4) 矩阵A的转置阵,可表达为 A'
(5) 矩阵A的特征向量与特征值:[V, D]=eig(A)。其中V和D分别为A的特征向量和特征值
6.4 矩阵的数组运算:
矩阵乘:A*B。A的列数与B的行数要相等。
矩阵的数组乘:A.*B。表示为A、B矩阵的对应元素一一相乘,即Aij * Bij。A与B的维度要相同。
矩阵的数组除:A./B或者A.\B
举例:x=-10 : 2 :10
y=sin(x) % correct
y=sin(x^2) % incorrect - Matrix x must be square
y=sin(x.^2) % correct
6.5 矩阵元素的关系运算与逻辑运算(与、或、非)
< 小于
> 大于
<= 小于或等于
>= 大于或等于
== 等于
~= 不等于
6.6 矩阵的多维数组形式
(1) 函数cat的使用
(2) B=cat(dim, a1, a2,...)
(3) 意义:将多个同维数组a1, a2,...构成一个高维数组B。dim是高维数组B的维数。
它必须等于或大于a1, a2,...的阶次
举例:a=[1 2 3 ; 2 3 4 ; 3 5 6]
b=a+10 % 新构成一个矩阵
a(:, :, 2)=b % 将新矩阵赋给a的第二层
a(:, :, 1) % 显示a的第一层
c=cat(3, a, b) % 用函数来构成高维数组
6.7 多项式及其运算式
多项式的创建:
(1) 由1×N的N维向量
P=[a0 a1 a2 … an] 表示 Pn=a0xn + a1xn-1 + a2xn-2+ .. +an多项式。
(2) 由函数poly(A)定义
如果A为二维或以上的矩阵,poly(A)表示由A的特征根确定的多项式。如果A为一维矩阵
poly(A)表示由A的元素为多项式的根确定的多项式。
举例:
%方法一
p=[1 -2 3] %直接给出多项式p
poly2sym(p) %给出p多项式的表达式
%方法二
a=[1 2; -2 4]
ps=poly(a) % 计算a的特征根确定的多项式
poly2sym(ps) % 给出ps多项式的表达式
%方法三
x=[-1 2]
px=poly(x) % 以x的元素为多项式的根确定的多项式
poly2sym(px) % 给出ps多项式的表达式
Matlab语法的更多相关文章
- Eigen与Matlab语法及语义辞典
Eigen为Matlab转换为C++提供了一个简单的语法级别的代码迁移工具. 对一些代码进行了扩充,以便程序由Matlab到Eigen的移植................... 参考链接:http: ...
- 【数学建模】MATLAB语法
一.向量.矩阵的表示和使用 format long %小数很多format short %默认4位小数format rat %显示最近的分数format short e %指数格式的数 尾数多少 e ...
- matlab语法基础(处理一点数据)
1.声明函数,返回参数data,函数名为simutrack function data=simutrack(x0,y0) 2.%用于标注,注释 3.平方 ^2 4.二维零矩阵 [0 0;0 0] 5. ...
- matlab基本语法和运算基础
转载自:http://blog.csdn.net/robertcalm/article/details/51582253 matlab语法比较随意,但正如其全名 matrix &laborat ...
- SublimeText 修改文件扩展名的默认语法高亮
平时经常使用sublime text3编辑matlab程序,但是sublime text使用的默认语法高亮是Object C,用起来很不方便,每次都需要在Sublime Text右下角手动点一下语法高 ...
- 四大机器学习编程语言对比:R、Python、MATLAB、Octave
本文作者是一位机器学习工程师,他比较了四种机器学习编程语言(工具):R.Python.MATLAB 和 OCTAVE.作者列出了这些语言(工具)的优缺点,希望对想开始学习它们的人有用. 图源:Pixa ...
- [math][mathematica] archlinux 下 mathematica 的安装 (科学计算软件 mathematica/matlab/sagemath)
ONLINE: http://www.wolframalpha.com/ GPL: segamath: http://www.sagemath.org/ famous and not free: ma ...
- matlab中m文件与m函数的学习与理解
1. m文件与m函数的区别 所谓 MATLAB 程序,大致分为两类: M 脚本文件 (M-Script) 和 M 函数 (M-function), 它们均是普通的 ASCII 码构成的文件. M 脚本 ...
- 归并排序算法Matlab实现
Matlab一段时间不用发现有些生疏了,就用归并排序来练手吧.代码没啥说的,百度有很多.写篇博客,主要是记下matlab语法,以后备查. 测试代码 srcData = [1,3,2,4,6,5,8 ...
随机推荐
- NPOI 2.0 创建Excel文件
如果只是简单的处理的话,只需要引用下载压缩包里的 NPOI.dll (office 2003)或 NPOI.OOXML.dll (office 2007) 文件而已. using System; us ...
- 【转】silverlight telerik RadGridView 列头显示其他控件
<telerik:GridViewDataColumn DataMemberBinding="{Binding target_id}" IsFilterable=" ...
- 在Win7 64位操作系统下安装Oracle 10g
参见网址http://www.cnblogs.com/newstar/archive/2010/12/01/1878026.html 1.下载安装程序,可以到这个网址去下载 http://www.or ...
- could not build module 'XXXXXXXX'或者error: expected identifier or '(' 。一堆奇怪的错误————错误根源
一堆奇怪的错误:1⃣️could not build module 'XXXXXXXX' 2⃣️error: expected identifier or '(' 3⃣️EDIT Setting Pr ...
- web.config 配置
一.认识Web.config文件 Web.config 文件是一个xml文本文件,它用来储存 asp.NET Web 应用程序的配置信息(如最常用的设置asp.NET Web 应用程序的身份验证方 ...
- Oracle中INSTR、SUBSTR和NVL的用法
Oracle中INSTR.SUBSTR和NVL的用法 INSTR用法:INSTR(源字符串, 要查找的字符串, 从第几个字符开始, 要找到第几个匹配的序号) 返回找到的位置,如果找不到则返回0. 默认 ...
- 简述UIViewControl之间的七种传值方式~~~
将自己学习到的UIViewControl之间传值的几种方式在这里做一下总结,希望童鞋们多多支持哈--- 一.正向传值方式 这种方式传值应该是最简单的方式,我们先来建立两个视图控制器暂且称为OneVie ...
- Eclipse快捷键 10个最有用的快捷键
Eclipse中10个最有用的快捷键组合 一个Eclipse骨灰级开发者总结了他认为最有用但又不太为人所知的快捷键组合.通过这些组合可以更加容易的浏览源代码,使得整体的开发效率和质量得到提升. 1. ...
- CSS的三种引入方式
1.标签 <style>定义样式 <link> 资源的引用(某些css的样式) 2.属性 rel=”stylessheet” 外部样式表 (rel为定义当前文 ...
- 对于undefined和null,还有处理这一类的数组
var total=0; var data=new Array(5);//定义了data数组,length为5,但是都是元素都是undefined. for(i=0;i<data.length; ...