第一节 基本数值计算

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语法的更多相关文章

  1. Eigen与Matlab语法及语义辞典

    Eigen为Matlab转换为C++提供了一个简单的语法级别的代码迁移工具. 对一些代码进行了扩充,以便程序由Matlab到Eigen的移植................... 参考链接:http: ...

  2. 【数学建模】MATLAB语法

    一.向量.矩阵的表示和使用 format long  %小数很多format short %默认4位小数format rat %显示最近的分数format short e %指数格式的数 尾数多少 e ...

  3. matlab语法基础(处理一点数据)

    1.声明函数,返回参数data,函数名为simutrack function data=simutrack(x0,y0) 2.%用于标注,注释 3.平方 ^2 4.二维零矩阵 [0 0;0 0] 5. ...

  4. matlab基本语法和运算基础

    转载自:http://blog.csdn.net/robertcalm/article/details/51582253 matlab语法比较随意,但正如其全名 matrix &laborat ...

  5. SublimeText 修改文件扩展名的默认语法高亮

    平时经常使用sublime text3编辑matlab程序,但是sublime text使用的默认语法高亮是Object C,用起来很不方便,每次都需要在Sublime Text右下角手动点一下语法高 ...

  6. 四大机器学习编程语言对比:R、Python、MATLAB、Octave

    本文作者是一位机器学习工程师,他比较了四种机器学习编程语言(工具):R.Python.MATLAB 和 OCTAVE.作者列出了这些语言(工具)的优缺点,希望对想开始学习它们的人有用. 图源:Pixa ...

  7. [math][mathematica] archlinux 下 mathematica 的安装 (科学计算软件 mathematica/matlab/sagemath)

    ONLINE: http://www.wolframalpha.com/ GPL: segamath: http://www.sagemath.org/ famous and not free: ma ...

  8. matlab中m文件与m函数的学习与理解

    1. m文件与m函数的区别 所谓 MATLAB 程序,大致分为两类: M 脚本文件 (M-Script) 和 M 函数 (M-function), 它们均是普通的 ASCII 码构成的文件. M 脚本 ...

  9. 归并排序算法Matlab实现

    Matlab一段时间不用发现有些生疏了,就用归并排序来练手吧.代码没啥说的,百度有很多.写篇博客,主要是记下matlab语法,以后备查.   测试代码 srcData = [1,3,2,4,6,5,8 ...

随机推荐

  1. TCP协议与UDP协议的区别

    TCP协议与UDP协议的区别(转) 首先咱们弄清楚,TCP协议和UCP协议与TCP/IP协议的联系,很多人犯糊涂了,一直都是说TCP/IP协议与UDP协议的区别,我觉得这是没有从本质上弄清楚网络通信! ...

  2. 如何在网页中调用百度地图api

    我想在木有提供地图接口的年代,前端工程师门要么只写上企业的具体地址,要么就是用一张标有自己位置的地图图片.但是现在不一样啦!为了增强用户体验,谷歌,甚至百度都很开放了,你可以在他们的网站上找到地图接口 ...

  3. excel表数据对比 个人收集

    做了那么久猿,转行做测试以后居然折堕到要用excel来对比数据...~—~.真是人算不如天算...不过没关系,技多不压身. 首先,准备好两个对比的数据表,sheet1 跟sheet2 .在sheet1 ...

  4. Android系统文件夹组织结构

  5. goldengate studio 12.2.1.2.6发布

    主要特性: 1. 支持bigdata & teradata为目标端:

  6. C++的STL

    今天,看一段代码的时候发现只一句话就做了个排序,是这样的: sort(rotateArray.begin(),rotateArray.end()); 很震惊,后来查了一下sort的用法, sort函数 ...

  7. java开发模式学习

    1.瀑布模式 这种模式适合小项目,一层层进行编码,没有规模的设计, 2.原型模式 先做模板给客户在做实体 3.面向对象模式 用面向对象的思想进行开发 4.螺旋模式 从内到外一层层开,

  8. [Linux学习]Shell脚本(1)--函数,输入,if判断(持续更新)+删除空行 +保存当前路径

    1)接收输入 check_status() { echo --Check hi_repo status is ok? y or n read var if [ "$var" != ...

  9. 关于IE9-解决background-size的问题

    body{background:url("/branch/comm/images-new/login.jpg") no-repeat;background-size:100%;fi ...

  10. ZOJ2604-DP

    递推式并不知自己推出来的,用来纪念一下学会了java的函数用法... 最后5分钟的时候,大姐头直接告诉我打表,但是我当场就蒙了,我怎么会用java打表(其实自己脑中想的就是要输出到文件中然后生成数组打 ...