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 ...
随机推荐
- Android 6.0 新特性
首先谈一谈Android 6.0的一些新特性 锁屏下语音搜索 指纹识别 更完整的应用权限管理 Doze电量管理 Now onTap App link 在开发过程中与我们关系最密切的就是"更完 ...
- 玩转mysql-5.7.9-winx64.zip解压版
解压zip文件,放到D盘 追加\bin到Path环境变量 修改my-default.ini,# basedir =D:\mysql_5.7.9_winx64# datadir =D:\mysql_5. ...
- 类似qq的左滑菜单栏简单实现
代码托管到了Github https://github.com/cyuanyang/YYSlideView 主演实现代码: 1.滑动的viewController的初始化主要view -(instan ...
- bootstrap的下载
http://files.cnblogs.com/files/eeroom/bootstrap3.3.zip http://files.cnblogs.com/files/eeroom/Bootstr ...
- Android深度探索--HAL与驱动开发----第四章读书笔记
1. 下载.编译.测试源代码 创建存放下载文件的目录(repo) 下载repo脚本文件 创建用于存放源代码的目录 开始下载源代码. 2. 源代码目录含义摘要 Abi 应用程序二进制接口 Device ...
- C++ Daily 《6》---- 类静态对象与函数静态对象
C++ 的一个哲学基础是,你不应该为你使用的东西付出代价. class 拥有一个 static 成员,即使从未被用到,它也会被构造和析构: 而 函数拥有一个 static 成员, 如果这个函数从未被调 ...
- Ubuntu 使用Cisco VPN、AnyConnect、OpenConnect的方法。
自己建的廉价Shadowsocks服务器总是不稳定,众所周知,PPTP在中国大陆已经废了.为了连接外网,所以购买了BlueCloud的VPN.但是他们家的VPN是使用Cisco VPN,可以使用Any ...
- 关于Android 应用保活
通常情况下 , 公司需要让自己的产品在用户的手机中尽可能存活长的时间,包括不受大数字,手动清理后台等情况的影响.这里给出一种方式 就是 双进程守护: 模型如图所示: 两个service通过aidl的方 ...
- codeforces 732E(贪心)
题目链接:http://codeforces.com/contest/732/problem/E 题意:有n台计算机,m个插座,每台计算机有一个值a[i],每个插座有一个值b[i],每个插座最多只能对 ...
- [.NET] 自己实现任务池(模仿线程池)
线程池虽然好用,但限制也不少: (1)总觉得默认的 MaxThread 小了一点,每次使用都要手工调大= = (2)任务不能等待完成 (3)任务一旦加入不能取消,甚至不知道是正在排队/正在执行/执行完 ...