Matlab学习笔记第一章基础知识

一. 专题一:基础知识
1.3变量及其操作:
1.变量名以字母开头,不能以数字和下划线开头;
2.赋值语句的两种格式:变量=表达式 表达式(将表达式的值赋给matlab的预定义变量ans),如果在赋值语句后加分号,只执行赋值操作,不会显示运算后的结果。
例题:计算 (5+cos(47°))/(1+|x-y|),其中x=根7-2i,y=exp(pi/2)
注:cosd(角度)等价于cos(弧度)

x=sqrt(7)-2i;
y=exp(pi/2);
z=(5+cosd(47))/(1+abs(x-y))

z =

1.4395
3.预定义变量是由系统本身定义的变量,ans是默认赋值变量,i和j代表虚数单位,pi代表圆周率,NaN代表非数。
4.变量的删除和修改:①直接在工作区窗口操作;②who和whos命令

who(用于显示所有的变量名)

您的变量为:

x y z

whos
Name Size Bytes(字节数) Class(数据类型) Attributes

x 1x1 16 double complex
y 1x1 8 double
z 1x1 8 double
5.内存变量文件:用于保存工作区变量的文件,扩展名为.mat,也叫MAT文件;
Save命令:创建内存变量文件
save mydata x y 创建一个变量文件,里面有变量x,y
load 命令:装入内存变量文件
load mydata 在新的一个文件中载入“mydata“这个变量文件,可以直接使用x,y

1.4矩阵的表示
1.矩阵的建立:
①矩阵元素用中括号括起来

A=[1,2,3;4,5,6;7,8,9]
A =
1 2 3
4 5 6
7 8 9
②利于已有的小矩阵建立大矩阵
C=[B,A;A,B] 其中A,B是小矩阵
③复数矩阵 A=B+i*C;
2.冒号表达式 e1(初始值):e2(间距):e3(终止值)

a=2:2:8
a = 2 4 6 8
linspace函数 linspace(第一个元素,最后一个元素,元素总数),将一个区间均分为n段
3.结构矩阵:结构数据类型:一个结构数据由几个不同类型的数据封装,而一个结构数据是结构矩阵的一个元素;
4.单元矩阵,不懂

1.5矩阵元素的引用
1.通过下标引用

A=[1,2,3;1,2,3;1,2,3];
A(4,4)=8 这里的4和4大于了原矩阵的行数和列数,则新矩阵自动变大,且其他未赋值位置为0
A =
1 2 3 0
1 2 3 0
1 2 3 0
0 0 0 8
2.通过序号来引用:
size()函数:得到矩阵的行数和列数组成的行向量(行数为一列数为零的矩阵)
sub2ind函数:输入矩阵某元素的行列下标得到对应的序号;
D=sub2ind(已知矩阵的行数和列数,通常用size()函数,行下标,列下标);

3.利用冒号表达式获得子矩阵(由已知矩阵中的一部分元素组成的矩阵)
A(i,:) 第i行的全部元素;A(:,j)第j列的全部元素;A(i:i+m,k:k+m)行数大于等于i小于等于i+m且列数大于等于k小于等于k+m
4.矩阵元素的删除
①利用空矩阵x=[]

A(1:3,:)=[](删除列数无所谓,行数一到三的元素)
A = 0 0 0 8
5.reshape()函数,不改变元素个数,只改变排列
A = 0 0 0 8

reshape(A,2,2)
ans =
0 0
0 8
A(:)等价于reshape(A,元素总数,1) 即将矩阵堆叠为一个列向量

1.6 matlab基本运算
(1).基本算术运算:
①加减:要求两个矩阵同型,对应元素相加减
②乘法():要求A的行数和B的列数相等,否则提示两个矩阵不可乘
③除法:右除/ B/A等价于B
inv(A)(A的逆矩阵)
左除\ B\A等价于 inv(B)*A
④乘方(^):要求A是方针,x是标量
(2)点运算(只是对应元素作运算而不是矩阵式运算,故要求矩阵同型)

A=[1,2;3,4];
B=[1,2;3,4];
A.*B
ans = 1 4
9 16

A*B
ans =7 10
15 22
(3)关系运算
~=不等于 其他的和C语言一样,若关系成立则结果为1否则为0
当比较两个矩阵时,得到的仍是一个同型矩阵,其中关系成立的位置元素为1,不成立的为0
例题:建立三阶方阵A,判断A的元素是否为偶数
A=[4,3,8;1,2,4;2,5,5]
A =
4 3 8
1 2 4
2 5 5

p=rem(A,2)==0
p =
1 0 1
0 1 1
1 0 0
(4)逻辑运算 &(qie) ||(或) ~(非)

1.7字符串处理
1.字符串用单引号括起来,把字符串当成行向量,若字符串中有单引号,则要用两个单引号来表示;
2.建立多行字符串,形成字符串矩阵 如w=[‘fdkapo kfdpoa’;’dj adop’]
例题:建立一个字符串,做如下处理:

  1. 取1~5个字符组成的子字符串
  2. 将字符串倒过来重新排序
  3. 将小写字母转换为大写,并分别后退一个字母
  4. 统计小写字母的个数
    a=‘this is my first matlab program’;

suba=a(1:5) 一般小括号里面是元素的位置,suba这个变量直接是一个行向量
suba =
'this ’

back=a(end?1) 要让倒过来排序,重新定义一个变量,从end位置往前写
back =
‘margorp baltam tsrif ym si siht’

k=find(a>=‘a’&a<=‘z’) k得到的还是一个行向量,元素是小写字母的位置下标,find()函数用于查找满足条件的元素

a(k)=a(k)-(‘a’-‘A’) 因为k是一个行向量,所以带进去是整体化处理小写字母

length(k) length()函数统计字符串长度
3. 已知t=pi,m='t,sin(t),cos(t)‘表示的是一个字符串;而m=’[t,sin(t),cos(t)]'表示的是一个字符串矩阵,但是并没有“执行运算函数sin和cos”,使用eval(m)函数得到3.1416 0.0000 -1.0000
4.abs函数取绝对值,也可以求字符对应的ascii码,而char()函数则可求ASCII码对应的字符>> a=‘matlab’;

b=abs(a)
b =
109 97 116 108 97 98

char(b-32)
ans =
‘MATLAB’

  1. 字符串的比较(要求两个字符串长度相等)
    ① 用关系运算符比较,得到一个行向量,要么是1要么是0

‘add2’<=‘dads’
ans =
1×4 logical 数组1 0 1 1
② 字符串比较函数

  1. strcmp(s1,s2)比较是s1和s2是否相等,分别返回1和0
  2. strncmp(s1,s2,n)比较前n个字符是否相等
  3. str(s1,s2)忽略字母大小写的影响进行比较
  4. strncmppi(s1,s2,n)忽略大小写比较前n个字符
  5. 两个字符串的查找和替换
    ① findstr(s1,s2)返回s1和s2中短字符串在长字符串中开始的位置
    ② strrep(s1,s2,s3)将s1中的s2串用s3替换

a=‘this is my first matlab program’;
b=‘is’;
p=findstr(a,b)
p = 3 6

strrep(a,b,‘IS’)
ans =
‘thIS IS my first matlab program’

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值