matlab (1 2),数学建模第1(2)课——MATLAB基础知识介绍,第一,讲二,matlab,入门

目录:

一.数学建模常用编程语言:

Matlab编程语言,R语言,Python语言

二.Matlab窗口界面功能

(1)主页窗口

新建脚本=新建m文件(快捷键:Ctrl+N)

预设——用来更改字体,样式等

3bb01d833f926b423cc7a52ae13681fb.png

(2)绘图窗口(用来根据数据绘制图像)

c722bab2550dd7472c9782f5ecdbd6a1.png

(3)App窗口(包含很多工具箱)

1f1642f99eec09409652a649e5f776e7.png

(4)编辑器窗口(运行,查找,替换)

85ea7dd9c1fbe92e13aeb637056d4f2b.png

(5)更改当前文件夹,直接将目录复制到导航栏,左侧会出现该文件夹下的所有文件。双击左侧文件即可打开对应文件。

1c3a52d7f5ae78995e90e5145baba3d1.png

(6)工作区,显示所有用到的变量

5336f120520cdb5f633d1e885eba727e.png

三.Matlab基本常识

(1)在每一行的语句后面加上分号(英文;)表示不显示运行结果。不加分号则显示运行结果。因此当运行不需要显示的中间结果时,一般都需要加分号。

(2)注释:语句前加%。快捷键:Ctrl+R;取消注释 快捷键:Ctrl+T

(3)clear:命令行窗口输入 clear ,清除工作区所有变量

(4)clc:命令行窗口输入 clc ,清除命令行窗口中的所有文本,让屏幕变得干净

(5);也用于分行

(6)clear;clc:这条语句通常放到代码开头,起到“初始化”的作用,防止之前的结果对新脚本文件(后缀名是 .m)产生干扰。

四.Matlab常用函数和运算符和语法

注:Matlab想执行哪条语句,选中该条语句,单击右键,执行所选内容。

(1) disp函数:

matlab中disp()就是屏幕输出函数,类似于c语言中的printf()函数

注:disp函数句尾加不加分号,结果都一样。

语法为

:(Matlab中的字符串用英文的单引号或双引号,且单双引号不做区分)

disp("")

disp('')

%示例

disp("小陈同学想吃果酱")

运行结果:

6a55478525797430ac5a81a48d4bfb34.png

(2)向量表示法

用逗号(英文,)或空格来隔开行之间的元素;用分号(英文;)来隔开列之间元素

b7e472439b1e1aca64de8d36f02df7a9.png

(3)拼接字符串

way1:strcat(str1,str2……,strn)

例如:

bfc4ef888ff9e7900d3607037a72b60b.png

way2: [str 1,str 2,……, str n]或[str1  str2  ……  strn]

例如:

06920644856472261f0548f7b885064c.png

(4)num2str :

将数字转换为字符串 (用这个函数可以将字符串和数字拼接)

c = 100

num2str(c)

disp(['c的取值为' num2str(c)])

disp(strcat('c的取值为', num2str(c)))

(5)input函数:

用于将输入的数、向量、矩阵、字符串等赋给一个变量

A = input('请输入A:');

B = input('请输入B:')

加分号,输入后会将输入的结果直接显现出来

运行结果:

027720c1eb15a19367a97eeab307e25c.png

(6)sum函数

如果是向量(无论是行向量还是列向量),都是直接求和

如果是矩阵,则需要根据行和列的方向作区分

1.按列求和(得到一个行向量)

%写法1

a = sum(E)

%写法2

a = sum(E,1)

%sum(E,dim) dim表示维度,dim=1表示按照列求和;dim=2表示按照行求和

2.按行求和(得到一个列向量)

%写法

a = sum(E,2)

3.对整个矩阵求和

%写法1

a = sum(sum(E))

%写法2

a = sum(E(:))

%E(:)表示将一个矩阵拼接成一个列向量;列数靠前的在上面

(7)matlab中提取矩阵中指定位置的元素

1.取指定行和列的一个元素(输出的是一个值)

%写法

A(2,1)

A(3,2)

2.取指定的某一行的全部元素(输出的是一个行向量)

%写法

A(2,:)%选取第二行所有元素

A(5,:)%选取第五行所有元素

3.取指定的某一列的全部元素(输出的是一个列向量)

%写法

A(:,1)%选取第一列所有元素

A(:,3)%选取第三列所有元素

4.取指定的某些行的全部元素(输出的是一个矩阵)

补充知识:Matlab中生成等差数列:

a:b:c 表示从生成从a到c,间隔为b的等差数列。

a:c 表示从生成从a到c,间隔为1的等差数列(默认b为1)。

%写法

A([2,5],:) % 只取第二行和第五行(一共2行)

A(2:5,:) % 取第二行到第五行(一共4行)

A(2:2:5,:) % 取第二行和第四行 (从2开始,每次递增2个单位,到5结束)

不知道有几行,用end来表示最后一行或一列

%写法

A(:,2:end) %取第二列到最后一列

A(2:end,:) % 取第二行到最后一行

A(2:end-1,:) % 取第二行到倒数第二行

5.取全部元素(按列拼接的,最终输出的是一个列向量)

%写法

clc;A

A(:)

运行结果:

0db09c0ff8bb52b904591ef48a1cd8f7.png

(8)size函数

% size(A)函数是用来求矩阵A的大小的,它返回一个行向量,第一个元素是矩阵的行数,第二个元素是矩阵的列数

[r,c] = size(A)

% 将矩阵A的行数返回到第一个变量r,将矩阵的列数返回到第二个变量c

r = size(A,1) %返回行数

c = size(A,2) %返回列数

(9)repmat函数

% B = repmat(A,m,n):将矩阵A复制m×n块,即把A作为B的元素,B由m×n个A平铺而成。

A = [1,2,3;4,5,6]

B = repmat(A,2,1)

B = repmat(A,3,2)

运行结果:

17e9f810027639cadbf795038e62ddf4.png

(10) 求逆矩阵

inv(A)

(11)矩阵之间的乘法与除法(A/B = A*inv(B))

%乘法有一种计算方法

A * B

%除法有两种计算方法

A * inv(B)

A / B

(12)点乘和点除(形状相同的矩阵,对应位置的元素进行运算)

A .* B

A ./ B

(13)每个元素同时和常数相乘或相除

%乘常数

A * 2

A .* 2

%除常数

A / 2

A ./ 2

(14)乘方

%每个元素同时乘方

A .^ 2

%相当于A * A

A ^ 2

(15)特征值和特征向量

只求特征值

%矩阵A的全部特征值,构成向量E。

E=eig(A)

同时求特征值和对应的特征向量

%求矩阵A的全部特征值,构成对角阵D,并求A的特征向量构成V的列向量。(V的每一列都是D中与之相同列的特征值的特征向量)

[V,D]=eig(A)

注:每一个特征向量乘以常数可以构成无数个特征向量

(16)find函数

用来返回向量或者矩阵中不为0的元素的位置索引

%返回所有不为0的元素的位置

ind = find(X)

% 其有多种用法,比如返回前2个不为0的元素的位置:

ind = find(X,2)

%注意,矩阵在matlab中存贮时,是按列存储的,因此返回的位置也是如此

% 假如需要按照行列的信息输出

[r,c] = find(X) %r中存贮不为0元素的行标;c中存储不为0元素的列标

[r,c] = find(X,1) %只找第一个非0元素

[r,c] = find(X,1) %查找前两个非0元素

(17)矩阵与常数的大小判断运算

共有三种运算符:大于> ;小于< ;等于 ==  (一个等号表示赋值;两个等号表示判断),返回的结果是一个逻辑数组

例如:X > 0 矩阵X中大于0的元素位置为1,小于等于0的元素位置为0

X == 4 矩阵中等于4的元素位置为1,不等于4的元素位置为0

(18)判断语句

Matlab的判断语句,if所在的行不需要冒号,语句的最后一定要以end结尾 ;中间的语句要注意缩进。

例如:

if a >= 85

disp('成绩优秀')

elseif a >= 60

disp('成绩合格')

else

disp('成绩挂科')

end

(19)循环语句

语句要以end结尾。

for i = 1:n %循环,这一行后面不能加冒号,这里表示循环n次

disp(i)

end

for i = 1:2:n %循环,这里表示从1到n,间隔为2

disp(i)

end

(20)prod函数

prod函数和sum函数类似,一个用于乘,一个用于加  dim = 2 维度是行

(21)max()函数

找最大元素值

max(D)%找出每一列最大值

max(max(D))%找出整个矩阵中最大值

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值