我是跟着这个B站课程进行学习的。https://www.bilibili.com/video/BV1GJ41137UH
————————————————————————————————————————
基础使用
————————————————————————————————————————
首先介绍了Matlab的窗口
左边是工作目录,右上是工作区存放变量,右下存放历史命令,中间是命令窗口
基本运算符:+ 加 - 减 * 乘 / 除 ^次方号 (2^3代表2的3次方)
运算符有自己的优先级,可以用括号
在中间的命令窗口直接输入2+1 回车就可以直接运算出来,以ans展示输出
Matlab中的cos就是cos()
MATLAB的官方文档非常有用:
https://ww2.mathworks.cn/help/matlab/index.html
在Matlab里面获取帮助说明:右上角搜索框搜索或者在命令行输入 help sin 就会显示sin的说明
可以进行分步计算,把第一步的结果存到一个变量里面
>> a=cos(pi) a = -1 >> sin(a) ans = -0.8415或者不用自己设置变量a,直接用ans也行(ans是answer的缩写)
Matlab里面变量名称区分大小写。a和A是不一样的。
变量命名规则基本和C语言一致,但是不能以下划线或数字开头,不能是关键字
常见关键字(保留字):
ans:answer的缩写,默认结果的变量
i,j:复数
Inf:∞ 如1/0
eps:很小的数 2.2204e-016
NaN:不是一个数值 如 Inf/Inf
pi:π
查询关键字:iskeyword
另外如果把函数声明为变量,会优先当作变量使用。(变量的优先级高于内置函数)
比如
>> cos(8) ans = -0.1455 >> cos='This is a string' cos = 'This is a string' >> cos(8) ans = ' ' # 这时候在用cos(8)就是那个字符串的第8个字符:空格
数据类型
————————————————————————————————————————
不声明变量的话默认类型是double
MatLab里面有很多数据类型
logical逻辑型
char字符型
numeric
int8, int16, int32, int64 不同长度的整形 uint8, uint16, uint32, uint64 不同长度的无符号整形
single 单精度浮点数
double 双精度浮点数
cell
struct
常用命令
————————————————————————————————————————
分号隔开每一条命令,不显示每一个的结果
clc:清屏
who 查看所有变量
whos 查看所有变量的变量名、大小、类型等信息
clear 变量名 删除这一个变量,后面不写变量名是删除所有变量
format short/long/shortE/longE/bank/hex/rat 显示长度
short是4位小数,long是15位小数,带E的是用科学计数法表示,bank美元计算,两位,hex十六进制数,tat转换为有理数(分数表示)
根号:^0.5 或 sqrt()
π:pi
ln:log() 此外还有lg: log10() 以2为底的log2()
e:exp(1)
MATLAB Script
拓展名*.m
注释是开头加%
%% 区块(节)
%% for i=1:10 x=linspace(0,10,101); plot(x,sin(x+1)) print(gcf,'-deps',strcat('plot',num2str(i),'.ps')); end所有这些结束都需要一个end
if elseif else
for
switch case
otherwise
try catch
while
%% a = 3; if rem(a,2) == 0 disp('a is even') else disp('a is odd') end
%% input_num = 1; switch input_num case -1 disp('negative 1'); # 这里不会像C语言那样case穿透 case 0 disp('zero'); case 1 disp('positive 1'); otherwise disp('other value'); end
break
continue
end
pause
return
<小于 <=小于等于 >大于 >=大于等于 ==等于 ~=不等于 &&和 ||或
rem(a,2) 求a对2的余数
prod(1:n) 求1到n的阶乘
1e100 科学计数法 1乘10的100次方
矩阵和向量
————————————————————————————————————————
用方括号[ ]括起来,同一行的数用空格隔开,不同行用分号隔开(分号换行)
>> a=[1 2 3 4] a = 1 2 3 4 >> b=[1;2;3;4] b = 1 2 3 4 >>
之后a*b就是一个数值,b*a就是一个矩阵
a(3)就是a的第三个数3
如果是矩阵,就放坐标A(1, 2) 表示第一行第二个
如果里面只有一个数,就是直接从上到下,从左往右标序号。如第一列第二个是A(2),第一列第三个是A(3)
括号里面也可以写方括号[1 3 5] 表示第一个第三个和第五个。方括号里面写分号就是再接着获取。
例如:
>> A=[1 21 6;5 17 9;31 2 7] A = 1 21 6 5 17 9 31 2 7 >> A([1 3;1 3]) ans = 1 31 1 31 >> A([1 3],[1 3]) ans = 1 6 31 7修改矩阵中某一个数的值:
>> A(1,2)=76
A =
1 76 6
5 17 9
31 2 7
A(3,:) :这里是全部的意思,第三行全部
干掉第三行:A(3,:)=[]
快速生成等差:
如A=[1 2 3 4 5 ... 100] 直接输入A=[1:100]即可 (等差默认=1,这里省略了)
如B=[1 3 5 7 9 ... 99] 直接输入B=[1:1:99] 第一个是开始,第二个是等差,第三个是结尾
增广矩阵(左右拼在一起):[A B] 如果是[A:B]就上下拼在一起
矩阵相加减,对应位置加减。
矩阵相乘,第一个的第一行乘第二个的第一列+第一个的第一行乘第二个的第二列...
矩阵点乘.* 对应位置相乘
矩阵相除,约等于A*B的逆矩阵
矩阵点除./ 对应位置相除
矩阵和实数相加减。每一个地方都加或减实数
相除和点除这里是一样的。
次方就是几个矩阵相乘,点次方.^是每一个地方都几次方
' 转置 C=A' C就是沿着A矩阵的 \ 对角线反转的结果
eye(n) n×n n阶单位矩阵
zeros(n1.n2) n1×n2 零矩阵
ones(n1,n2) 都是1
diag() 对角线矩阵 diag[2 3 4] 对角线是2 3 4,其它都是0
max(A) 矩阵中每一列的最大值
max(max(A)) 整个矩阵中的最大
min(A) 最小值
sum(A) 每一列的加和
sum(sum(A)) 全部的加和
mean(A) 每一列的平均
sort(A) 每一列大小的排序,从上到下从小到大
sortrows(A) 按照第一列的大小排序,整行移动
size(A) 几行几列
length(A) 行和列中取最大
find(A==5) 找到5的位置是第几个位置
————————————————————————————————————————
关于繁体中文和简体中文一些称呼的区别:
这个老师可能不是大陆人,有一些中文名称的区别在这里汇总:
记忆体——内存
程式——程序
视窗——窗口
档案——文件
资料夹——文件夹
游标——光标
滑鼠游标——鼠标光标
投影片——幻灯片
运算子——运算符
变数——变量
桌布——桌面
宣告——声明 (如宣告变数——声明变量)
咨询——信息
进位——进制
注解——注释
回圈——循环 (for回圈——for循环)
硬碟——硬盘 (固态硬碟——固态硬盘)
本文地址:https://blog.jixiaob.cn/?post=48
版权声明:若无注明,本文皆为“赵苦瓜のBlog~”原创,转载请保留文章出处。