数学建模之matlab入门篇

article/2025/9/16 16:02:16

随着美赛的推进,数学建模用到matlab的越来越多,然而对matlab不熟悉的还很多,在此写下matlab基础篇,一是帮助没有了解过matlab的同学入门,二是帮助自己巩固知识。
在这里插入图片描述

时间紧迫,直接开始!此篇文章包括:
1.1matlab的基础使用
1.1.1特殊变量和常量
1.1.2 输出
1.1.3 matlab command window的基础使用
1.2matlab矩阵的基础使用
1.2.1矩阵行列的输入
1.2.2matlab矩阵索引
1.2.3快速创建大数组
1.2.4矩阵的运算
1.2.5矩阵运算函数
1.3plot库的基础使用
1.3.1plot颜色形状参数等
1.4matlab的数据类型
1.4.1数值类型
1.4.2字符和字符串
1.4.3数据类型之间的转换
1.4.4单位数组
1.5matlab的绘图
1.5.1线性图的绘制
1.5.2饼图的绘制
1.5.3散点图的绘制
1.5.4误差条图
1.5.5直方图his
1.5.6复合直方图
1.5.7多轴图
1.5.8创建动画

1.1.1特殊变量和常量

变量/常量含义
ans最近的计算结果的变量名
i,j虚数表示
Inf
eps2.2204e-016
NaN非数
piπ

1.1.2 输出

a = 10      # 确认输入之后会输出ans
b = 10;     # 带有分号,确认输入之后不会输出ans,直接当做变量存储到workspace里

1.1.3 matlab command window的基础使用

用↑可以查看历史输入指令
clc:清除command window的所有显示
close all : close all figures
clear:清除workspace所存储的所有变量信息和计算结果(慎用,不可逆)
clear var:清除指定变量var
who:显示在workspace所存储的变量
whos:显示在workspace所存储的变量的详细信息

1.2.1 矩阵行的输入

行向量的表示: a = [1 2 3] #(数字之间用空格隔开,表示数字在同一行)
列向量的表示: b = [1;2;3] #(数字之间用分号隔开,分号相隔的数字单独成行)

1.2.2 matlab矩阵索引

A(row, col)

提取单个元素

A = [1 2 3;4 5 6;7 8 9]
A(2,3) #即提取二行三列的元素6

一次提取多个元素

A = [1 2 3;4 5 6;7 8 9]
A([1 3], [1 3])

在这里插入图片描述

提取单个元素

A(8) #纵向开始数,从左往右纵向数,第8个为6

一次提取多个元素

A([1 3 5]) #表示为A(1),A(3),A(5)整合的一个行向量 结果为[1 7 5]
A([1 3;1 3]) #即表示[A(1) A(3);A(1) A(3)]

1.2.3快速创建大数组
我们可以先输入一个二维数组,然后通过第三维数组与其关系生成第三维数组,例如输入以下代码可以生成三维数组:

D2=[1,2,3;4,5,6;7,8,9];D3(:,:,1)=D2;D3(:,:,2)=2*D2;D3(:,:,3)=3*D2;

用:代表要显示的整行整列

显示矩阵的一整行:A(3, :)表示显示矩阵的第3行,冒号表示全部信息
显示矩阵的一整列:A(:, 2)表示显示矩阵的第2列

删除整行整列

删除一整行或一整列:赋值[]即可;如A(3, : ) = []使得A的第三行被删除

矩阵间的连接

增广矩阵C = A|B在MATLAB中采用C = [A B](注意是中括号而不是括号,中括号代表矩阵)表示

同理,若要将B矩阵放在A矩阵的下方,则表示为:C = [A;B](即之前的数字换为矩阵)

1.2.4矩阵的运算

点乘:A.*B 表示A,B对应位置的数相乘所形成的矩阵(就像A+B一样只是对应位置的数相加,只是这里换成了乘法)
点除:与点乘同理,乘法换为除法
点阶乘:同理,A.^a 表示每个entry进行a阶乘运算
矩阵加实数:如A + a 表示将A矩阵的所有entry都加上a
矩阵转置:A’

1.2.5矩阵的运算函数
还是使用上面的矩阵A,一起来看一下矩阵的运算函数的使用。

max(A) #表示A中每一列的最大值提取出来后形成的行向量
max(max(A)) # 表示矩阵中最大的entry,即9

在这里插入图片描述

min(min(A)) # 表示矩阵中最小的entry,即1

在这里插入图片描述

sum(A) #表示A中每一列之和所组成的行向量

在这里插入图片描述

mean(A) # 表示A中每一列的平均数所组成的行向量

在这里插入图片描述

sort(A):表示A中的每一列进行从小到大的排序(每一个row的数据没有绑定在一起)

在这里插入图片描述

sortrows(A)#表示A中的所有row按第一列进行排序,每一行row的数据是绑定的
size(A)#求出A的m x n

在这里插入图片描述

length(A)#求出A的长,也即为:max(m,n)(将A看成矩形,矩形的长即为length(A)的值)
find(A==n)#求出A中n的位置是多少(index按前面提到的角度二计算);若不存在则返回:空矩阵: 0×1

在这里插入图片描述
1.3.1plot颜色和类型
生成简单的sinx图

x = 0:pi/10:2*pi;
y = sin(x);
figure;
hold on;
plot(x,y)

生成矩阵图像

X=rand(3,3); %随机生成3*3矩阵
figure;
hold on;
plot(X)

生成带参数的图像

x = 0:pi/10:2*pi;
y = sin(x);
figure;
hold on;
plot(x,y,'r-') #带参数 r为红色 -为实线

在这里插入图片描述

1.4matlab的数据类型
1.4.1数值类型
1.实数

Matlab的数值类型分为三种,整形,单精度浮点型和双精度浮点型
整形 int 单精度浮点 single 双精度浮点double
因为系统默认的数据类型是双精度浮点,所以在将变量设置为整数时需要进行转换,matlab提供了如下的转化函数。

函数运算法则
floor向下取整
ceil向上取整
round取最接近的整数
fix向0取整

2.复数

复数由实部和虚部两部分构成,在Matlab中,字符i或j默认作为虚部标志,关于复数的相关函数如下:

函数说明函数说明
complex(a,b)构造以a为实部,以b为虚部的复数i,j虚部标识
real(z)返回复数z的实部image(z)返回复数z的虚部
abs(z)返回复数z的模angle(z)返回复数z 的辅角
conj(z)返回复数z的共轭复数

3、无穷量(Inf)和非数值量(NaN)

Matlab中使用Inf和-Inf分别表示正无穷大和负无穷大,NaN表示非数值量。正负无穷大一般是由于运算溢出产生,非数值量则是由于类似0/0或Inf/Inf类型的非正常运算产生。

1.4.2字符和字符串

Matlab将文本作为特征字符串或简单地当做字符串,但是实际存储的是字符串的ASCII码。abs函数可以获得字符串的具体值,使用方法如下:

>> a='abc'a =abc>> abs(a)ans =97    98    99

1.4.3数据类型之间的转换
类型识别函数:

函数功能函数功能
iscell判断是否为单元数组isnumeric判断是否为数值数组
isreal判断是否为实数ischar判断是否为字符数组
isstr判断是否为字符串isfloat判断是否为浮点数
isstruct判断是否为结构数组whos列举变量类型及相关数据

类型转换函数:

函数功能函数功能
dec2bin十进制转为二进制int2str整数转为字符串
num2str数值转为字符串str2double字符串转为double

1.4.4单位数组
1.创建单位数组

>> A={'x',[2;3;6];10,2*pi}A = 'x'     [3x1 double][10]    [    6.2832]

2.访问单位数组

在单元数组中,单元和单元中的内容属于不同范畴,这意味着访问单元和访问单元中的内容是两个不同的操作。对于单元数组C,C(m,n)指的是单元数组中第m行第n列的单元,而C{m,n}则是指的是第m行第n列的单元中的内容。

>> A(1,1)ans = 'x'>> A(1,2)ans = [3x1 double]>> A{1,2}ans =236

3.单位数组的合并

>> C={'a','b';'c','d'}C = 'a'    'b''c'    'd'>> D={'1','2'}D = '1'    '2'>> E={A;B}E = {2x2 cell}{2x2 cell}>> E{1,1}ans = 'x'     [3x1 double][10]    [    6.2832

1.5.8创建动画
sinx 动画绘制

clear all
h = animatedline;%动画线
axis([0 4*pi -1 1])
box on
x = linspace(0,4*pi,200);for k = 1:length(x)y = sin(x(k));addpoints(h,x(k),y);%将数据添加到动画线中drawnow%画出动画线f=getframe(gcf); imind=frame2im(f);[imind,cm] = rgb2ind(imind,256);if k == 1;imwrite(imind,cm,'test.gif','GIF', 'Loopcount',inf,'DelayTime',1);elseimwrite(imind,cm,'test.gif','GIF','WriteMode','append','DelayTime',1);end 
end

到此关于数学建模matlab入门的学习就到此结束了,但是学习还未结束,如需数学建模优秀论文和算法的资料,可在本文下评论获取


http://chatgpt.dhexx.cn/article/HidBZt7K.shtml

相关文章

数学建模-MATLAB三维作图

导出图片用无压缩tif会更清晰 帮助文档:doc 函数名 matlab代码导出为PDF 新建实时脚本或右键文件转换为实时脚本实时编辑器-全部运行-内嵌显示保存为PDF

数学建模专栏 | 开篇:如何备战数学建模竞赛之 MATLAB 编程

作 者 简 介 卓金武,MathWorks中国高级工程师,教育业务经理,在数据分析、数据挖掘、机器学习、数学建模、量化投资和优化等科学计算方面有多年工作经验,现主要负责MATLAB校园版业务。曾2次获全国大学生数学建模竞赛一等奖&#x…

MATLAB数学建模:常用建模函数

常用建模函数 本文将对常用于 MATLAB 建模的函数,如曲线拟合函数、参数估计函数、插值函数等,作详细介绍。 文章目录 常用建模函数1. 曲线拟合函数1.1 多项式拟合1.2 加权最小方差拟合1.3 非线性曲线拟合 2. 参数估计函数2.1 点估计2.1.1 最大似然法2.1…

【数学建模】数学建模学习2---整数规划(例题+matlab代码实现)

文章目录 1 概论1.1 定义1.2 整数规划的分类1.3 整数规划特点1.4 求解方法分类 2 分枝定界法3 0 −1型整数规划3.1 引入0 −1变量的实际问题3.1.1 投资场所的选定——相互排斥的计划3.1.2 相互排斥的约束条件3.1.3 关于固定费用的问题(Fixed Cost Problem&#xff0…

Matlab数学建模(五):优化模型之标准模型

一、学习目标 (1)了解最优化模型。 (2)掌握线性规划的优化求解。 (3)掌握整数规划的优化求解。 (4)了解Matlab的图形化应用。 二、实例演练 1、谈谈你对最优化模型的了解。 最优…

Matlab 数学建模算法大全

Matlab 数学建模算法大全 第一章 线性规划…1 第二章 整数规划…16 第三章 非线性规划…32 第四章 动态规划…56 第五章 图与网络…68 第六章 排队论…118 第七章 对策论…154 第八章 层次分析法…167 第九章 插值与拟合…175 第十章 数据的统计描述和分析…201 第十一章 方差分…

数学建模专栏 | 第三篇:MATLAB数据建模方法(上) —常用方法

以数据为基础而建立数学模型的方法称为数据建模方法, 包括回归、统计、机器学习、深度学习、灰色预测、主成分分析、神经网络、时间序列分析等方法, 其中最常用的方法还是回归方法。 本讲主要介绍在数学建模中常用几种回归方法的 MATLAB 实现过程。 根据…

快速MATLAB学习,数学建模

文章目录 MATLAB1.简单加减乘除2.help的用法3.数据类型3.1整数3.2浮点数3.3复数3.4逻辑型3.5矩阵1 普通矩阵2转置矩阵3拉伸4逆矩阵6三维矩阵7等差矩阵8重复矩阵7全一的矩阵9结构体 4.变量的使用4.1特殊变量4.2>>iskeyword 5.矩阵的四则运算矩阵下标 6.程序结构6.1for循环…

利用MATLAB进行数学建模

一、用给定的多项式,如yx3-6x25x-3,产生一组数据(xi,yi,i1,2,…,n),再在yi上添加随机干扰(可用rand产生(0,1)均匀分布随机数,或用rands产生N(0,1)分布随机数),然后用xi和添加了随机干扰的yi作的3次多项式拟合,与原系数…

【数学建模】常用模型算法及MATLAB代码汇总

大家好,我是程序员史迪仔。 这篇文章是在大学准备数学建模比赛时,整理的学习笔记,没想到阅读量、点赞量和收藏量还是可以的,很高兴我的文章能给大家带来帮助! 一、蒙特卡洛算法二、数据拟合三、数据插值四、图论1、最…

2022数学建模国赛备赛阶段性记录(1-1)

数学建模国赛培训记录,主要使用软件为MATLAB,主要内容为在数学建模竞赛中常用的操作、数学与模型以及部分练习题的解析。 一、常规操作 1、基本运算 MATLAB内四则运算相当于计算机的加减乘除,对应输入数字、运算符,回车即可得出…

Matlab与数学建模

一、学习目标。 (1)了解Matlab与数学建模竞赛的关系。 (2)掌握Matlab数学建模的第一个小实例—评估股票价值与风险。 (3)掌握Matlab数学建模的回归算法。 二、实例演练。 1、谈谈你对Matlab与数学建模竞赛的了解。 Matlab在数学建模中使用广泛:MATLAB 是公认的最优秀的数…

MATLAB在数学建模中的应用

MATLAB在数学建模中的应用 一.预备知识 1.1.关于MATLAB软件 由于科学技术及计算机的飞速发展,各类数学软件不断涌现,这使在解决各类复杂的问题变得非常简单。常用的数学软件有Mathematica、MATLAB、SAS等软件。MATLAB是“Matrix Laboratory"的缩写&#xff…

数学建模——matlab基本使用

一:命令窗口两个常用基本命令 清除工作区:clear。清屏:clc。 二:变量与基本运算 圆周率表示:pi。lnx代码化:log(x)。e^x代码化:exp(x) x代表次数。sin(x):sin(x);cos(x):cos(x);tan(x):tan(x…

MATLAB数学建模-规划模型总结| MATLAB求解

目录 1 线性规划问题(LP) 风格1 风格2 2 非线性规划 3 动态规划 A星算法 基于dijkstra的概率路线图 4 多目标规划 帕累托最优 支配(Dominace) 不可支配解集 帕累托最优解集 帕累托最优前沿面 线性加权法 约束转化法…

MATLAB--数学建模作图大全及代码说明

目录 1、二维曲线 2、二维渐变图 3、二维散点图 4、条形图 5、填充图 6、多Y轴图 7、三维曲线图 8、三维散点图 9、三维伪彩图 10、裁剪伪彩图 11、等高线图 12、三维等高线图 13、等高线填充图 14、三维矢量场图 15、伪彩图投影图 16、热图 17、分子模型图 1…

如何查询Opencv的版本

环境:Win10 方法: 参考文章上写的很详细,在这里重新编辑一下,保存下来: 1、找到OpenCV的安装主文件夹,在主文件夹中找到“build”文件夹。 2、进入build文件夹以后,在文件夹中找到名为“Ope…

Linux查看opencv 版本

命令如下: [plain] view plain copy print ? pkg-config --modversion opencv 库文件一般放在: /usr/local/lib (PS,系统装的OpenCV版本太多,查找也让人头疼) 头文件一般在: /usr/local/inc…

ubuntu系统下如何查看opencv版本

打开终端,在终端输入: pkg-config --modversion opencv 可以看出,我安装的是opencv 2.4.13版本的。

在pycharm中查看opencv版本

import cv2 print(cv2.__version__)运行后如下图为自己各自安装的版本: