数学建模第一讲(二)-----matlab基础知识入门

目录:

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

二.Matlab窗口界面功能

(1)主页窗口

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

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

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

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

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

三.Matlab基本常识

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

(1) disp函数:

 (2)向量表示法

(3)拼接字符串

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

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

(4)num2str :

(5)input函数:

(6)sum函数

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

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

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

(8)size函数

(9)repmat函数

(10) 求逆矩阵

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

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

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

(14)乘方

(15)特征值和特征向量

(16)find函数

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

(18)判断语句

(19)循环语句

(20)prod函数

(21)max()函数

(22)转置矩阵

(23)单位矩阵




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

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

二.Matlab窗口界面功能

(1)主页窗口

  • 新建脚本=新建m文件(快捷键:Ctrl+N)
  • 预设——用来更改字体,样式等

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

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

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

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

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

三.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("小陈同学想吃果酱")

运行结果:

 (2)向量表示法

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

(3)拼接字符串

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

例如:

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

例如:

(4)num2str :

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

c = 100
num2str(c)
disp(['c的取值为' num2str(c)])
disp(strcat('c的取值为', num2str(c)))

(5)input函数:

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

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

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

运行结果:

(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(:)

运行结果:

(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)

运行结果:

(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))%找出整个矩阵中最大值

(22)转置矩阵

A'%A的转置矩阵

(23)单位矩阵

one(n)%构建n*n的单位矩阵

 

  • 6
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值