前言
此篇文章是我在B站学习时所做的笔记,主要对MATLAB做了简单的介绍,代码部分为亲自动手演示过的,方便复习用。此篇文章仅供学习参考,禁止转载!
提示:以下是本篇文章正文内容,下面案例可供参考
一、Matlab视窗
二、基本操作与矩阵输入
1. 把MATLAB当做计算机
- Operators(操作员):+ - * /
- 结果由计算机显示为 Ans
- 优先组中从左到右的优先组是(最高第一组):
(1) Parenthesis 括号 ()
(2) Power 幂(^)
(3) Multiplication and division 乘、除 (*, /)
(4) Addition and subtraction 加、减 (+, -)
即:先加减后乘除,也可以用括号来设置优先级
2. 初等数学函数
Matlab帮助文档
运算符和基本运算
初等数学
图形
Exercise练习
摘自B站
知识点:三角学
√=sqrt()
>> cos(((1+2+3+4)^3/5)^0.5)
ans =
-0.0050
>> cos(sqrt((1+2+3+4)^3/5))
ans =
-0.0050
摘自B站
知识点:exp指数函数
错误代码:
>> e^(sin(10))
e^(sin(10))
↑
错误: 文本字符无效。请检查不受支持的符号、不可见的字符或非 ASCII
字符的粘贴。
>> e^(sin(10))
函数或变量 'e' 无法识别。
>> exp^(sin(10))
错误使用 exp
输入参数的数目不足。
正确代码:1. 输入的字符要是英文的。2. 指数函数是exp(x)格式
>> exp(sin(10))
ans =
0.5804
摘自B站
知识点:指数与对数
错误代码:
>> sin(sqrt(Π))+ln(tan(1))
sin(sqrt(Π))+ln(tan(1))
↑
错误: 文本字符无效。请检查不受支持的符号、不可见的字符或非 ASCII 字符的粘贴。
正确代码:ln=log
>> sin(sqrt(pi))+log(tan(1))
ans =
1.4228
2. 嵌入函数
函数可以嵌入到其他函数中
摘自B站
3. 特殊变量和常量
摘自B站
我们也可以通过查看文档的形式来了解哪些是特殊的变量和常量
>> iskeyword
ans =
20×1 cell 数组
{'break' }
{'case' }
{'catch' }
{'classdef' }
{'continue' }
{'else' }
{'elseif' }
{'end' }
{'for' }
{'function' }
{'global' }
{'if' }
{'otherwise' }
{'parfor' }
{'persistent'}
{'return' }
{'spmd' }
{'switch' }
{'try' }
{'while' }
4.MATLAB调用优先
摘自B站
>> cos='This string';
>> cos(8)
ans =
'r'
5. 数字显示格式长
样式 | 结果 |
---|---|
short | Short, 结果小数点后有4位的短的固定十进制格式。 |
long | Long,固定的十进制格式,双值在小数点后15位,单值在小数点后7位。 |
shortE | 小数点后有四位数的短科学记数法。 |
longE | 长科学记数法,双值在小数点后15位,单值在小数点后7位。 |
bank | 小数点后有两位的货币格式。 |
hex | 二进制双精度数的十六进制表示。 |
rat | 小整数的比率。把数值转成有理数,分数 |
如:
>> format long
>> pi
ans =
3.141592653589793
>> format longE
>> pi
ans =
3.141592653589793e+00
>> format bank
>> pi
ans =
3.14
>> format rat
>> pi
ans =
355/113
Exercise练习
摘自B站
>> 3/13+4/14+5/15
ans =
0.8498
>> format long
>> ans
ans =
0.849816849816850
>> format rat
>> ans
ans =
232/273
6. 命令行终端
观察两者的区别
>> a=10
a =
10
>> a=10;
;在命令的末尾会抑制到终端的输出,即是让此数值不显示
↑ 可以用来显示以前的命令
7. 部分函数
clc | 清除命令窗口显示 |
---|---|
clear | 删除工作区中的所有变量,从工作区中删除项目、释放系统内存 |
who | 列出工作区中的变量 |
whos | 列出工作区中的变量及大小和类型 |
移除工作区的(variable)变量cos方式:
>> clear cos
用clear会把工作区的东西全部清空,要小心使用
>> clear
清屏(清除命令行窗口)的语句为:
clc
8. 数组(向量和矩阵)
知识点:线性代数
>> a=[1 2 3 4]
a =
1 2 3 4
>> b=[1;2;3;4]
b =
1
2
3
4
>> a*b
ans =
30
>> b*a
ans =
1 2 3 4
2 4 6 8
3 6 9 12
4 8 12 16
Exercise练习
摘自B站
>> A=[1 21 6;5 17 9;31 2 7]
A =
1 21 6
5 17 9
31 2 7
9. 数组索引
摘自B站
A(8):第8个数字
A([1 3 5]):第1、3、5个数字
A([1 3;1 3]) :第1、3个数字与第1、3个数字组成的矩阵
A([1 3],[1 3]):第1行、第3行与第1列、第3列的交集形成矩阵
>> A=[1 21 6;5 17 9;31 2 7]
A =
1 21 6
5 17 9
31 2 7
>> A(8)
ans =
9
>> A([1 3 5])
ans =
1 31 17
>> A([1 3;1 3])
ans =
1 31
1 31
>> A(3,2)
ans =
2
>> A([1 3],[1 3])
ans =
1 6
31 7
10. 取代位置
修改矩阵中的下列要素:
摘自B站
A(1,2)=76替换掉第1行第2列的数值
A(3,:)输出第3行数值
A(3,:)=[]使第3行数值为空
注意
表达式:A()=[ ]表示删除A的行或列
>> A
A =
1 21 6
5 17 9
31 2 7
>> A(1,2)=76
A =
1 76 6
5 17 9
31 2 7
>> A(3,2)=0
A =
1 76 6
5 17 9
31 0 7
>> A(3,:)
ans =
31 0 7
>> A(3,:)=[]
A =
1 76 6
5 17 9
11. 冒号运算符
创建向量或数组,并指定迭代
摘自B站
语法:
>> B=1:5
B =
1 2 3 4 5
>> B=1:2:5
B =
1 3 5
>> B=[1:5;2:3:15;-2:0.5:0]
B =
1.0000 2.0000 3.0000 4.0000 5.0000
2.0000 5.0000 8.0000 11.0000 14.0000
-2.0000 -1.5000 -1.0000 -0.5000 0
>> str='a':2:'z'
str =
'acegikmoqsuwy'
12. 数组连接
矩阵可以通过串联形成,保持矩形形状
摘自B站
F=[A B]表示把A和B 放在一起形成一个新的增广矩阵
>> A=[1 2;3 4];
>> B=[9 9;9 9];
>> F=[A B]
F =
1 2 9 9
3 4 9 9
>> F=[A;B]
F =
1 2
3 4
9 9
9 9
13. 数组操作
数组操作符:+ - * / ^ . '(转置)
Form | Examples |
---|---|
A+b | [6,3]+2=[8,5] |
A-b | [8,3]-5=[3,-2] |
A+B | [6,5]+[4,8]=[10,13] |
A-B | [6,5]-[4,8]=[2,-3] |
A*B | [3,5]*[4,8]’=52 |
A.*B | [3,5].*[4,8]=[12,40] |
A./B | [2,5]./ [4,8]=[2/4,5/8] |
A.\B | [2,5].\ [4,8]=[4/2,8/5] |
A.^B | [3,5].^ [2,4]=[3^ 2,5^4] |
摘自B站
- A+B:A和B的每行每列对应相加得到的新矩阵
- A*B:用A的行乘以B的列,即A*B的第1行1列的值等于1*3+2*2+3*1=10,A*B的第1行2列的值等于1*3+2*4+3*3=20
- A.*B:A和B的每行每列对应相乘得到的新矩阵,即A.*B的第1行1列的值等于1*3=3,A.*B的第1行2列的值等于2*3 =6
- A/B:A*inv(B),inv(B) 计算方阵B的逆矩阵。B^(-1) 等效于 inv(B)。
- A./B:A和B的每行每列对应相除得到的新矩阵,即A./B的第1行1列的值等于1/3
- A+a:在A里边的数值每个都加上a
- A/a=A./a
- A^a= A^2=A*A
- A.^a:在A矩阵里边,每个值都平方
- A’:将A照着对角线转置
>> A=[1 2 3;4 5 4;9 8 7]
A =
1 2 3
4 5 4
9 8 7
>> B=[3 3 3;2 4 9;1 3 1]
B =
3 3 3
2 4 9
1 3 1
>> y1=A+B
y1 =
4 5 6
6 9 13
10 11 8
>> y2=A*B
y2 =
10 20 24
26 44 61
50 80 106
>> y3=A.*B
y3 =
3 6 9
8 20 36
9 24 7
>> y4=A/B
y4 =
0.0714 0.2857 0.2143
1.1667 0 0.5000
3.2619 -0.2857 -0.2143
>> y5=A./B
y5 =
0.3333 0.6667 1.0000
2.0000 1.2500 0.4444
9.0000 2.6667 7.0000
>> a=2;
>> x1=A+a
x1 =
3 4 5
6 7 6
11 10 9
>> x2=A/a
x2 =
0.5000 1.0000 1.5000
2.0000 2.5000 2.0000
4.5000 4.0000 3.5000
>> x3=A./a
x3 =
0.5000 1.0000 1.5000
2.0000 2.5000 2.0000
4.5000 4.0000 3.5000
>> x4=A^a
x4 =
36 36 32
60 65 60
104 114 108
>> x5=A.^a
x5 =
1 4 9
16 25 16
81 64 49
>> C=A'
C =
1 4 9
2 5 8
3 4 7
14. 一些特殊的矩阵
-
linspace():生成线性间距向量
例:linspace(x1,x2,n) 生成 n 个点。这些点的间距为 (x2-x1)/(n-1)。 -
eye():单位矩阵
例:eye(n)返回一个主对角线元素为 1 且其他位置元素为 0 的 n×n 单位矩阵。 -
zeros():创造全零矩阵
例:zeros(n) 返回一个 n×n 的全零矩阵。 -
diag():创建对角矩阵或获取矩阵的对角元素
例:diag(v) 返回包含主对角线上向量 v 的元素的对角矩阵。 - rand():均匀分布随机数
>> linspace(0,13,6)
ans =
0 2.6000 5.2000 7.8000 10.4000 13.0000
15. 一些矩阵相关函数
摘自B站
文章来源:https://www.toymoban.com/news/detail-403760.html
-
max(A):数组的最大元素,如上面题的max(A)=[7 5 9]
1、如果 A 是向量,则 max(A) 返回 A 的最大值。
2、如果 A 为矩阵,则 max(A) 是包含每一列的最大值的行向量。
3、如果 A 是多维数组,则 max(A) 沿大小不等于 1 的第一个数组维度计算,并将这些元素视为向量。此维度的大小将变为 1,而所有其他维度的大小保持不变。如果 A 是第一个维度长度为零的空数组,则 max(A) 返回与 A 大小相同的空数组。 - max(max(A)):整个矩阵中最大值,如max(max(A))=9
-
sum(A):数组元素总和,如sum(A)=[8 7 18]
1、如果 A 是向量,则 sum(A) 返回元素之和。
2、如果 A 是矩阵,则 sum(A) 将返回包含每列总和的行向量。
3、如果 A 是多维数组,则 sum(A) 沿大小不等于 1 的第一个数组维度计算,并将这些元素视为向量。此维度会变为 1,而所有其他维度的大小保持不变。 - sort(A):对数组元素排序,每列的值都会从上到下依次从小到大排,即按升序对 A 的元素进行排序。
- sortrows(A):对矩阵行或表行进行排序,基于第一列中的元素按升序对矩阵行进行排序。
- size(A):数组大小,求出这个A矩阵为几行几列,如果 A 是一个 3×4 矩阵,则 size(A) 返回向量 [3 4]。
- find(A):查找非零元素的索引和值, 如find(A==6)=8:在A矩阵中,A=6的值位于第8个位置。
>> A=[1 2 3;0 5 6;7 0 9]
A =
1 2 3
0 5 6
7 0 9
>> max(A)
ans =
7 5 9
>> max(max(A))
ans =
9
>> min(A)
ans =
0 0 3
>> sum(A)
ans =
8 7 18
>> mean(A)
ans =
2.6667 2.3333 6.0000
>> sort(A)
ans =
0 0 3
1 2 6
7 5 9
>> sortrows(A)
ans =
0 5 6
1 2 3
7 0 9
>> size(A)
ans =
3 3
>> length(A)
ans =
3
>> find(A)
ans =
1
3
4
5
7
8
9
>> find(A==6)
ans =
8
如若侵权,请及时与我联系。
此篇文章仅供学习参考,禁止转载!文章来源地址https://www.toymoban.com/news/detail-403760.html
到了这里,关于MATLAB(一)基本操作与矩阵输入的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!