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 ...
随机推荐
- 不懂指针就不要说自己学过C语言!
不懂指针就不要说自己学过C语言! 1.掌握了指针,就掌握了C语言的精髓!计算机中绝大部分数据都放到内存中的,不同的数据放到不同的内存区域中. 内存角度没有数据类型,只有二进制:数据以字节(8位二进制) ...
- A problem about rcssserver3d
When I enter rcssserver3d to the terminal, the system told me this problem: (SimulationServer) SimCo ...
- [WinForm] VS2010发布、打包安装程序
最近用到了VS2010WinForm的程序打包功能,网上发现一篇好帖,在此记录以供日后他人之需. 原文链接地址:http://www.mamicode.com/info-detail-2453.htm ...
- 设置Ubuntu为本地时间
大家在切换操作系统的时候会发现一个问题, Windows 和 Ubuntu 的时间会出现不一致的情况.在 Windows 中把时间设置正确了过后,回到在 Ubuntu 后系统的时间又不一样了,在 Ub ...
- TransactionScope 使用记录
最近使用TransactionScope来进行处理不同数据库的操作问题,当看到这里的时候肯都是在使用或者要使用的吧,关于他的使用网络上一大堆,我在使用的时候遇到了一下的问题,作为记录,可能会对以后使用 ...
- Python中文问题(转)
在本文中,以'哈'来解释作示例解释所有的问题,“哈”的各种编码如下: 1. UNICODE (UTF8-16),C854: 2. UTF-8,E59388: 3. GBK,B9FE. 一.python ...
- http://zh.lucida.me/
一个很厉害的在美国Google的学长的博客
- Java的多态
多态的定义: 同一种行为,在不同对象上有不同的表现形式 实现多态的条件: 要有继承 要有方法的重写 要有父类的引用指向子类的对象 代码如下: public class Animal { String ...
- 认识Java
java出生地:SUN Microsystems Inc<开源> -SUN : Standford University Network java之父:James Gosling ...
- Block对象
背景:回调机制中回调设置代码和回调方法的具体实现无法写在同一段代码中.Mac OS X 10.6和iOS4种引入了Block对象.Block对象看上去是一段代码,但是可以当作数据来传递. 定义Bloc ...