MATLAB(一)
2021/7/21 23:14:11
本文主要是介绍MATLAB(一),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
文章目录
- 前言
- 一、Matlab视窗
- 二、基本操作与矩阵输入
- 1. 把MATLAB当做计算机
- 2. 初等数学函数
- Exercise练习
- 2. 嵌入函数
- 3. 特殊变量和常量
- 4.MATLAB调用优先
- 5. 数字显示格式长
- Exercise练习
- 6. 命令行终端
- 7. 部分函数
- 8. 数组(向量和矩阵)
- Exercise练习
- 9. 数组索引
- 10. 取代位置
- 11. 冒号运算符
- 12. 数组连接
- 13. 数组操作
- 14. 一些特殊的矩阵
- 15. 一些矩阵相关函数
前言
此篇文章是我在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站
- 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
如若侵权,请及时与我联系。
此篇文章仅供学习参考,禁止转载!
这篇关于MATLAB(一)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-26JavaScript入门教程:从零开始学习JavaScript编程
- 2024-12-26JavaScript入门教程:从零开始学习JavaScript
- 2024-12-26JS编程入门指南:从零开始学习JavaScript
- 2024-12-25Java编程面试题详解与解答
- 2024-12-25TS基础知识详解:初学者必看教程
- 2024-12-252024面试题解析与攻略:从零开始的面试准备指南
- 2024-12-25数据结构与算法学习:新手入门教程
- 2024-12-25初学者必备:订单系统资料详解与实操教程
- 2024-12-24内网穿透资料入门教程
- 2024-12-24微服务资料入门指南