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  即 A\B 等价于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

posted @ 2019-04-17 09:37  kafm  阅读(382)  评论(0编辑  收藏  举报