第一节 基本数值计算

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. [Tool] Open Live Writer 插件更新

    最新插件下载地址:Memento.OLW_V1.0.0.2.7z 零.历史更新记录 2016.11.24 1. 修正 cnblog 语法高亮中的 SQL.Perl 语法高亮异常 下载地址:Mement ...

  2. 科学计算软件——Octave安装

    Octave是一个旨在提供与Matlab语法兼容的开放源代码科学计算及数值分析的工具,是Matlab商业软件的一个强有力的竞争产品. 参考:[ML:Octave Installation] Gener ...

  3. 【转】Open Live Writer 插件更新

    一.更新内容 cnblog 页签中增加 Lua 和 Matlab 语法高亮:(SyntaxHighlight 页签中尚未添加) 增加折叠区域插件,见效果展示: 增加 bat 执行文件,直接拷贝插件所需 ...

  4. OpenCV中Mat的详解

    每次碰到Mat都得反复查具体的用法,网上的基础讲解不多,难得看到一篇,赶快转来收藏~ 原文地址:http://www.opencvchina.com/thread-1039-1-1.html 目标 我 ...

  5. Matlab编程-数值计算相关语法

    1.变量的命名规则(类似C语言): (1)    区分大小写 (2)    变量长度不超过31位 (3)    变量名以字母开头,变量名中包含字母.数字.下划线,不可以用标点 2. Mathlab预定 ...

  6. Markdown编辑器语法指南2

    人的一切痛苦, 本质上都是对自己的无能的愤怒. --王小波 1 Markdown编辑器的基本用法 1.1 代码 如果你只想高亮语句中的某个函数名或关键字,可以使用 `function_name()` ...

  7. Matlab插值函数

    x=0:2*pi; y=sin(x); xx=0:0.5:2*pi; %interp1对sin函数进行分段线性插值,调用interp1的时候,默认的是分段线性插值 y1=interp1(x,y,xx) ...

  8. matlab画图函数plot()/set/legend

    简单plot()/legend/XY轴范围axis 除了坐标轴信息外还可以添加其它的信息,如所画曲线的信息等:测试代码如下 x=0:pi/20:2*pi; y1=sin(x); y2=cos(x); ...

  9. 【原创】开源Math.NET基础数学类库使用(03)C#解析Matlab的mat格式

                   本博客所有文章分类的总目录:[总目录]本博客博文总目录-实时更新  开源Math.NET基础数学类库使用总目录:[目录]开源Math.NET基础数学类库使用总目录 前言 ...

随机推荐

  1. maven package 知识(转载)

    “打包“这个词听起来比较土,比较正式的说法应该是”构建项目软件包“,具体说就是将项目中的各种文件,比如源代码.编译生成的字节码.配置文件.文档,按照规范的格式生成归档,最常见的当然就是JAR包和WAR ...

  2. NoSQL生态系统——类似Bigtable列存储,或者Dynamo的key存储(kv存储如BDB,结构化存储如redis,文档存储如mongoDB)

    摘自:http://www.ituring.com.cn/article/4002# NoSQL系统的数据操作接口应该是非SQL类型的.但在NoSQL社区,NoSQL被赋予了更具有包容性的含义,其意为 ...

  3. cf319.B. Modulo Sum(dp &amp;&amp; 鸽巢原理 &amp;&amp; 同余模)

    B. Modulo Sum time limit per test 2 seconds memory limit per test 256 megabytes input standard input ...

  4. [Android Pro] StarUML 版本破解

    参考:http://bbs.chinapyg.com/thread-79022-1-1.html 官网下载地址 : http://staruml.en.softonic.com 各平台版本均适用,本文 ...

  5. 【No.5 Ionic】修改 应用名,icon,启动界面

    修改 应用名 直接 修改 config.xml中的name 修改icon 和 启动界面 在resources目录有个 icon.png  和 splash.png 文件,直接把文件覆盖执行重新生成命令 ...

  6. 打印出所有的 &quot;水仙花数 &quot;,所谓 &quot;水仙花数 &quot;是指一个三位数 其各位数字立方和等于该数本身。 例如:153是一个 &quot;水仙花数 &quot; 因为153=1*1*1+5*5*5+3*3*3

    for (int i = 100; i <= 999; i++) { int geWei, shiWei, baiWei; baiWei = i / 100; shiWei = (i - bai ...

  7. 常见浏览器兼容问题、盒模型2种模式以及css hack知识讲解

    什么是浏览器兼容问题?所谓的浏览器兼容性问题,是指因为不同的浏览器对同一段代码有不同的解析,造成页面显示效果不统一的情况.在大多数情况下,我们的需求是,无论用户用什么浏览器来查看我们的网站或者登陆我们 ...

  8. RegexBuddy正则表达式工具

    RegexBuddy非常的好用,而且还能生成.net的代码. 我们在使用正则匹配时,毕竟.net提供的方法中,对于多行匹配就不能用单纯的正则去实现,而我们需要把它转换成相应的类库方法进行实现. 那么R ...

  9. MD5签名方法

    /** * md5签名 * @param plainText 要签名的字符串 * @param enc 要编译的格式 gbk:utf-8 * @return */ public static Stri ...

  10. Codeforces Round #336 (Div. 2)B. Hamming Distance Sum 前缀和

    B. Hamming Distance Sum 题目连接: http://www.codeforces.com/contest/608/problem/A Description Genos need ...