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 ...
随机推荐
- jquery点击获取子元素ID值
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- IOS UITableView移除底部空白行
tableView.tableFooterView = [[UIView alloc] initWithFrame:CGRectZero];
- C/C++函数调用的几种方式及函数名修饰规则以及c++为什么不允许重载仅返回类型不同的函数
我们知道,调用函数时,计算机常用栈来存放函数执行需要的参数,由于栈的空间大小是有限的,在windows下栈是向低地址扩展的数据结构,是一块连续的内存区域.这句话的意思是栈顶的地址和栈的最大容量是系统预 ...
- AngularJs的UI组件ui-Bootstrap分享(十一)——Typeahead
Typeahead指令是一个用于智能提示或自动完成的控件,就像Jquery的AutoComplete控件一样.来看一个最简单的例子: <!DOCTYPE html> <html ng ...
- USB协议规范学习(一)
什么是USB OHCI规范? OHCI(Open HCI)是目前使用比较广泛的三种USB主机控制器规范之一.USB体系结构是由四个主要部分组成:客户软件/USB驱动,主机控制器驱动(HCD),主机控制 ...
- javascript页面加载完执行事件
<script type="text/javascript" language="JavaScript"> //: 判断网页是否加载完成 docum ...
- Android系统文件夹组织结构
- Alpha版使用说明书
游戏规则: 玩家是黑色的小煤球哦! 通过方向键或者ASDW,来控制小球移动(上.下.左.右). 累计时间,直到碰到了红色的小球 ...
- 内存对齐 和 sizeof小结
数据对齐(内存对齐)指该数据所在的地址必须是该数据长度的整数倍.X86CPU能直接访问对齐的数据,当它试图访问未对齐的数据时,会在内部进行一系列的调整,降低运行速度.数据对齐一般出现在结构体和类中,在 ...
- time元素和datetime、pubtime属性
time:对一个时间进行标识 <time datetime="2012-12-24">2012-12-24</time> datetime:时间的值 pub ...