欢迎食用『主界面』~,这里是赵苦瓜的看板娘desu~
【点滴记录】Matlab的初步学习
首页 > 点滴记录    作者:赵苦瓜   2021年2月3日 10:21 星期三   热度:192°   百度已收录  
时间:2021-2-3 10:21   热度:192° 

我是跟着这个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循环)

硬碟——硬盘    (固态硬碟——固态硬盘)

本文作者:赵苦瓜      文章标题: 【点滴记录】Matlab的初步学习
本文地址:https://blog.jixiaob.cn/?post=48
版权声明:若无注明,本文皆为“赵苦瓜のBlog~”原创,转载请保留文章出处。

返回顶部    首页    后花园  
版权所有:赵苦瓜のBlog~    站长: 赵苦瓜    主题寒光唯美式V2.4.1  程序:emlog   鲁ICP备20030743号-1