zoukankan      html  css  js  c++  java
  • MATLAB基础(三):MATLAB基本运算与字符串处理

    MATLAB基本运算

    MATLAB面向矩阵!
    MATLAB面向矩阵!
    MATLAB面向矩阵!


    MATLAB提供矩阵意义下

    算术运算
    关系运算
    逻辑运算

    当然也有针对矩阵元素的运算,单个数据的算术运算只是矩阵运算的一种特例


    算术运算
    加 + 、减 - 、乘 × 、除 (左除) / (右除) 、乘方 ^

    加减运算
    要求两矩阵同型,即维数、大小相同
    标量与矩阵进行加减运算时,把标量与矩阵的每一个元素相加减

    乘运算
    若矩阵A与矩阵B相乘,要求A的列数与B的行数相等,此时称AB矩阵是可乘的,或AB两矩阵维数和大小相容

    除法运算
    右除
    如果矩阵A是非奇异方阵,
    B右除以A  即 B/A 等价于B*inv(A)  A矩阵的逆右乘B矩阵
    B左除以A  即 AB 等价于inv(A)*B  A矩阵的逆左乘B矩阵
    inv() 求矩阵的逆

    对于矩阵来说,右除和左除表示两种不同的除数矩阵和被除数矩阵关系,一般B右除以A不等于B左除以A

    而对于含有标量的除法,左除右除一样一样的

    乘方运算
    一个矩阵A的乘方运算可以表示为 A^x,此处x为标量


    点运算
    两矩阵进行点运算是指它们对应位置元素进行相关运算,故要求两矩阵同型
    点乘.*、点右除./、点左除.、点乘方.^


    关系运算
    <、<=、>、>=、~=(不等于)

    当参与比较的量是两个同型的矩阵时,比较是对两矩阵相同的位置元素按标量的关系运算规则逐个进行

    当参与比较的量一个是矩阵,一个是标量时,则将标量与矩阵的每一个元素按标量的关系运算规则进行比较

    上述结果都是一个与原矩阵同型的矩阵,它的元素由0和1组成


    逻辑运算
    MATLAB提供 &、|、~ 三种逻辑运算
    矩阵与矩阵、矩阵与标量的逻辑运算与关系运算类似


    例子
    求水仙花数:各位数字的立方之和等于该数字本身的三位正整数

    >> A=100:999;
    >> num1=rem(A,10);
    >> num2=rem(fix(A/10),10);
    >> num3=fix(A/100);
    >> res=find(A==num1.^3+num2.^3+num3.^3)
    
    res =
    
        54   271   272   308
    
    >> res = A(res)
    
    res =
    
       153   370   371   407
    

    MATLAB中的字符串

    字符串的表示
    MATLAB中,字符串是用单引号括起来的字符序列

    >> str='I''m you.'
    
    str =
    
        'I'm you.'
     
    >> str(1:2)
    
    ans =
    
        'I''
    

    字符串里的 ’ 用两个 ’ 来表示
    char=[‘abcde’;‘12345’];
    char(2,3) = ‘3’

    例子
    ① 取第1~5个字符组成的子字符串
    ② 将字符串倒过来重新排列
    ③ 将字符串中的小写字母变成相应的大写字母,其余字符不变
    ④ 统计字符串中小写字母的个数

    ch='ABc123d4e56Fg9';
    subch=ch(1:5) 
    revch=ch(end:-1:1)
    k=find(ch>='a'&ch<='z')
    ch(k)=ch(k)-('a'-'A')        
    length(k)
    

    字符串的执行

    eval() 函数

    >> PI = pi;
    >> m='[PI,sin(PI),cos(PI)]';
    >> res=eval(m)
    
    res =
    
        3.1416    0.0000   -1.0000
    
    

    有种将字符串解释为代码执行的感觉

    字符串的操作

    取ASCII值

    abs() 和 double() 函数都可以用来获取字符串矩阵对应的ASCII码数值矩阵
    char() 函数可以把ASCII码矩阵转换为字符串矩阵

    >> name='MATLAB'
    
    name =
    
        'MATLAB'
    
    >> ASCII=abs(name)
    
    ASCII =
    
        77    65    84    76    65    66
    
    >> char(ASCII+32)
    
    ans =
    
        'matlab'
    

    字符串比较

    ①利用关系运算符比较
    两个同长度的字符串可以通过关系运算符比较,结果是对应位置字符比较结果的数值向量

    ②字符串比较函数
    strcmp(s1, s2 [, n]) 比较字符串s1和s2前n个字符是否相等,相等返回1否则返回0 (n为字符个数,可选项)
    strcmpi(s1, s2 [, n]) 比较前n个字符是否相等,忽略大小写,相等返回1否则返回0 (n为字符个数,可选项)

    字符串查找与替换

    findstr(s1,s2):返回短字符串在长字符串中的开始位置与参数位置无关
    strrep(s1, s2, s3):等价于Java中String.replaceAll


    在这里插入图片描述


    还要拾起线代qnq

    2019/4/17

  • 相关阅读:
    Python 安装Twisted 提示python version 2.7 required,which was not found in the registry
    Openfire Strophe开发中文乱码问题
    css div 垂直居中
    How to create custom methods for use in spring security expression language annotations
    How to check “hasRole” in Java Code with Spring Security?
    Android 显示/隐藏 应用图标
    Android 当媒体变更后,通知其他应用重新扫描
    文件上传那些事儿
    专题:点滴Javascript
    主流动画实现方式总结
  • 原文地址:https://www.cnblogs.com/kafm/p/12721816.html
Copyright © 2011-2022 走看看