数学建模——MATLAB基础知识

article/2025/8/26 18:04:37

前言:MATLAB和我们平时学的C语言相类似,大体也是由于三部分组成的。任何的复杂的程序由顺序结构,选择结构,循环结构组成的。

一、顺序结构

1.数据的输入:

input 用法:A=input(字符串)-->>影响程序流畅性

Importdata:A=Importdata('地址')

xlsread:适用于纯数值型数据 A=xlsread('地址');

readtable:重点使用 A=readtable('文件地址') 表头中文会乱码 我们可以重新起名

A=readtable

textscan:文本格式的数据 flied=fopen('地址');

2.数据的输出

fprintf('%10d',a)

disp(111)

与之对应把read-->>write 功能相反

二、循环结构

1.for结构

n=100;
Sn=0;
for k=1:nSn=Sn+(-1)^(k-1)/k;k=k+1;
end
Sn
与C语言相比 for缺少了条件 并且 MATLAB表示的是1到100的值与C语言相差很多 并且结束是end

2.while结构

while 条件内容
end

三、选择结构

1.if结构

if(条件)内容
end

2.两分支结构

if(条件)内容else内容
end

3.多分支结构

if(条件)elseif(条件)内容elseif(条件)内容..........else内容
end

4.switch结构

switch 条件case 条件内容case 条件内容case 条件内容case 条件内容........otherwise内容
end

MATLAB 向量化编程

1.矩阵或者向量

2.利用自带函数

3.不用循环和选择

4.点乘和点÷    .*  ./


三种自定义函数的方式

1.三个要点.参数 返回值 函数主体

2.使用方法. 

返回值列表=函数名(参数)

3.m函数 

function result=funName(parameters)
....
end
funName:必需的
result:可有可无
parameters:可有可无

实例

function [ mv ] = wq2( x )
%mean 表示求方差
mv=mean(x);
end

调用

>> wq2(1:10)
ans =5.5000

4.函数+脚本

脚本中的函数必须在脚本的末尾

5.两个函数(第一个主函数,第二个子函数,一般主函数一个,子函数多个)---->>求解

6.多个m文件---->>类似

7.匿名函数

funName=@(x) 函数主体

8.公式的转换 MATLAB2016 好像不可以

9.函数的嵌套

function mainfunx=5nextfun1function nextfun1x=x+1;enddisp(x)end

数据的预处理

一、数据的标准化、正则化

1.数据标准化是样本的属性缩放到指定的范围

2.原因

  • 某些算法需要零方差和单位方差
  • 消除样本不同属性具有不同量级时的影响

3.常用标准化方法

  • min-max标准化(归一化)------>>>>>>Xnew=(X-Xmin)/(Xmax-Xmin)
  • z-score标准化(规范化)适用于最大值最小值未知的情况--->>Xnew=(X-Xava)/s
  • 尺度变换 ------>>>>Xnew=X/s
  • 中心化------->>>Xnew=x-c

4.MATLAB自带函数

normalize()自带标准化命令---MATLAB2020

二、数据分组

1.将数据划给到指定区间:discretize 左闭右开

2.对时间数据进行分类

三、缺失值处理

1.判断数据是否缺失

ismissing:推荐使用

isnan:判断是否NaN

isempty:判断数组是否为空

实例

A = [3 NaN 5 6 7 NaN NaN 9];
%缺失值表示1 其他表示零
TF = ismissing(A)
TF = 1x8 logical array0   1   0   0   0   1   1   0
%创建一个表,其中 'NA'、''-99、NaN 和 Inf 表示缺失值。然后,找出具有缺失值的元素。
dblVar = [NaN;3;Inf;7;9];
int8Var = int8([1;3;5;7;-99]);
cellstrVar = {'one';'three';'';'NA';'nine'};
charVar = ['A';'C';'E';' ';'I'];
A = table(dblVar,int8Var,cellstrVar,charVar)
id = {'NA' '' -99 NaN Inf};
TF = ismissing(A,id)
TF = 5x4 logical array1   0   0   00   0   0   01   0   1   00   0   1   10   1   0   0

2.利用fillmisssing函数进行缺失值处理

方法	说明
'previous'	上一个非缺失值
'next'	下一个非缺失值
'nearest'	距离最近的非缺失值
'linear'	相邻非缺失值的线性插值(仅限数值、duration 和 datetime 数据类型)重点
'spline'	分段三次样条插值(仅限数值、duration 和 datetime 数据类型) 重点
'pchip'	保形分段三次样条插值(仅限数值、duration 和 datetime 数据类型) 重点
'makima'	修正 Akima 三次 Hermite 插值(仅限数值、duration 和 datetime 数据类型)

部分例子

 x=1:10x([3,6,7])=NaN%均值xmean=mean(x(~isnan(x)))x_fill0=fillmissing(x,'constant',xmean)%前一个位置填充x_fill1=fillmissing(x,'previous')x_fill2=fillmissing(x,'next')

通过七种组合----->>>分析 缺失值

%组合填充
mean([x,y,z,......])

另外 滑动法

F = fillmissing(A,movmethod,window) 使用窗口长度为 window的移动窗口均值或中位数填充缺失条目。
例如,fillmissing(A,'movmean',5) 使用窗口长度为 5 的移动均值填充缺失数据。

另外一种

x = [-4*pi:0.1:0, 0.1:0.2:4*pi];
A = sin(x);
将 NaN 值插入 A 中。A(A < 0.75 & A > 0.5) = NaN;
使用线性插值填充缺失数据,并返回填充的向量 F 和逻辑向量 TF。TF 项中的值 1 (true) 对应于 F 中的填充值。[F,TF] = fillmissing(A,'linear','SamplePoints',x);
绘制原始数据和填充的数据。plot(x,A,'.', x(TF),F(TF),'o')
xlabel('x');
ylabel('sin(x)')
legend('Original Data','Filled Missing Data')

 四、离群值处理


MATLAB数据可视化

一、步骤

1.准备作图数据(必须)

 load命令(Excel)

2.选定作图窗口与作图区域

figure与subplot

3.调入作图命令(必须)plot

4.设置图片格式 线性颜色等等

5.输出图形 保存.fig文件


二维曲线的绘制

1.plot(y)

2.plot(x,y)

3.plot(x1,y1,x2,y2......) 绘制多个二维曲线


一、线形图格设置

1.设置曲线的线性、颜色、和数据点标记

2.plot(x,y,'选项')

二、设置坐标轴

三、网格线和坐标边框

网格线:grid on

linewidth 2; MarketSize:


一、图形修饰

1.标签和标题

title('')

xlabel(’‘)

ylabel('')

zlabel('')

2.文本标识

3.设置图例

legend();顺序

顺序前后对应
legend(___,'Location',lcn) 设置图例位置。例如,'Location','northeast' 
将在坐标区的右上角放置图例。请在其他输入参数之后指定位置

ginput

[x,y] = ginput(n) 可用于标识 n 个点的坐标。要选择一个点,
请将光标移至所需位置,然后按下鼠标按键或键盘上的键。
在选中全部 n 个点之前,按 Return 键可停止选择。
MATLAB® 返回所选点的坐标。如果没有当前坐标区,
调用 ginput 会创建一个笛卡尔坐标区

例子

[x,y] = ginput(4)

二、图形保持

hold on 图形保持
hold off 关闭图形保持
grid on 网格线

三、多个图形的绘制

subplot
subplot(m,n,p) 将当前图窗划分为 m×n 网格,并在 p 指定的位置创建坐标区。
MATLAB® 按行号对子图位置进行编号。第一个子图是第一行的第一列,
第二个子图是第一行的第二列,
依此类推。如果指定的位置已存在坐标区,则此命令会将该坐标区设为当前坐标区
例子
subplot(2,1,1);
x = linspace(0,10);
y1 = sin(x);
plot(x,y1)subplot(2,1,2); 
y2 = sin(5*x);
plot(x,y2)

四、绘制填充图片

fill

set

matlab与latex结合

属性编辑器 画图 点图形鼠标 双击图片

第一种导入方法 然后黏贴

第二种

 导出.png格式

阴影填充

patch也可以


 二维特殊图形的绘制

一、柱状图

指令:bar、barh、bar3、bar3h.


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

相关文章

数学建模竞赛基础知识

国际大学生数学建模 世界大学生数学建模 美国大学生数学建模竞赛&#xff0c;一个比赛多个称呼而已&#xff0c;美赛是一项面向高中生、大学本科层次的一个国际性比赛。 美赛可分为两种&#xff1a; The Mathematical Contest in Modeling (MCM): 俗称数学建模竞赛&#xf…

数学建模——基础

目录 第1章 MATLAB基础知识 1&#xff0c;矩阵的表示 1&#xff0c;数值矩阵的生成 2&#xff0c;符号矩阵的生成 3&#xff0c;特殊矩阵生成 4&#xff0c;一般矩阵运算 5&#xff0c;基本图形绘制 6&#xff0c;简单图像处理 7&#xff0c;建立函数文件/.M文件 8&a…

数据库除法理解

理解 给定关系R和关系S&#xff0c;求RS。 关系R和关系S拥有共同的属性A2、A3 &#xff0c; 首先确定得到的属性为A1。&#xff08;RS得到的属性是关系R包含而关系S不包含的属性&#xff0c;即A1&#xff09; 其次确定A1中符合条件的属性值为{a,d}。&#xff08;关系R中A1的…

数据库课程设计——MOOC学习平台

文章目录 1. 项目介绍&#xff1a;2.代码部分 1. 项目介绍&#xff1a; 采用JDBC接口连接数据库&#xff0c;简单实现Mooc学习平台相关功能。 2.代码部分 1.方法类 package com.mooc; import untlis.DButlis; import java.sql.PreparedStatement; import java.sql.ResultS…

oracle数据库怎么创建数据库 oracle数据库工作流程

oracle数据库怎么创建数据库 数据库用户的创建、权限的分配 数据库安装完成后&#xff0c;有两个系统级的用户&#xff1a; system 默认密码为&#xff1a;manager sys 默认密码为&#xff1a;change_on_install 在安装的数据库目录中找到 \oracle\product\9.2\bin 中的sq…

数据库复习--并发控制

1、并发控制:为了保证事务的隔离性和一致性&#xff0c;数据库管理系统需要对并发操作进行正确调度 并发控制的主要技术有:封锁、时间戳、乐观控制法、多版本并发控制等 并发操作带来的数据不一致性: 丢失修改:两个事务T1和T2读入同一数据并修改&#xff0c;T2提交的结果破坏了…

gbase 连接数据库

1.gbase客户端 gbase data studio 2.gbase数据源 #数据库驱动 spring.datasource.driver-class-namecom.informix.jdbc.IfxDriver #数据源地址 spring.datasource.urljdbc:informix-sqli://10.2.35.142:9088/mztj:INFORMIXSERVERgbaseserver;NEWCODESETUTF8,zh_cn.UTF8,573…

数据库使用率对比【CSDN指数】

所有数据来自【CSDN指数】 mysql、sqlserver、redis、oracle数据库使用率对比 从以下数据可得&#xff0c;最抢手的数据库依然是【mysql】&#xff0c;但是每年的【11】月份【oracle】的使用率会突然增高&#xff0c;说明很多国有企业年底查数据的时候都会对数据做一次大清洗。…

ClickHouse 数据库建库

1 创建数据库 create database test[ ENGINE Atomic] 库引擎 1 Atomic 2 其他库引擎 MySQL 注意大小写 实验性阶段&#xff0c;使用mysql binlog 日志复制

数据库原理

绪论 数据&#xff1a;描述事物的符号记录称为数据&#xff0c;数据的含义称为语义数据库&#xff08;DB&#xff09;&#xff1a;数据库是长期存储在计算机内&#xff0c;有组织的&#xff0c;可共享的大量数据的集合数据库管理系统&#xff08;DBMS&#xff09;&#xff1a;…

记录一下数据库大作业

查看服务器 select servername python语句增删减改数据但数据库未保存 connect.commit() 这句话一定要加上&#xff0c;是在我发现修改数据后发现数据库并没有保存才知道的 设置登录名安全性 新建登录名后设置各个表的插入、查询等权限&#xff0c;具体是在表的属性然后权…

数据库的介绍

1. 数据库的介绍 数据库(Database DB)是按照数据结构来组织、存储和管理数据的仓库(存储数据的仓库)&#xff0c;它产生于距今六十多年前&#xff0c;随着信息技术和市场的发展&#xff0c;特别是二十世纪九十年代以后&#xff0c;数据管理不再仅仅是存储和管理数据&#xff0c…

【数据库】数据库基本概念和类型

一、数据库基本概念 1、数据 所谓数据&#xff08;Data&#xff09;是指对客观事物进行描述并可以鉴别的符号&#xff0c;这些符号是可识别的、抽象的。它不仅仅指狭义上的数字&#xff0c;而是有多种表现形式&#xff1a;字母、文字、文本、图形、音频、视频等。现在…

Linux下ll命令

ll命令其实就是ls -l&#xff0c;当然如果想显示隐藏信息就是 ls -al。 我个人是特别喜欢ll代替ls -al命令&#xff0c;并且还要有颜色的那种。 今天卸载软件重新安装环境变量怎么都不对了&#xff0c;一生气把环境变量都清空了。命令&#xff1a;unset PATH 然后就手动添加…

【Linux】ll命令报错-bash: ll: command not found

报错信息 &#xff1a; -bash: ll: command not found root用户没有显示 普通用户下&#xff0c;即目录的拥有者&#xff0c;可以使用ll命令 报错原因&#xff1a; root用户在当前目录没权限&#xff0c;或者&#xff0c; ll 并不是Linux 下一个基本的命令&#xff0c;它实际上…

语法分析:LL(1)分析

本篇介绍的LL(1)分析&#xff0c;这是一种自上而下分析的方法&#xff0c;第一个 L 表示从左向右扫描&#xff0c; 第二个 L 表示分析过程是最左推导&#xff0c;(1)表示每次只向前看一个符号进行分析 关于语法描述的概念 本文中&#xff0c;若无特别说明&#xff0c;小写字母[…

Linux命令 ls 和 ll 的使用方法与基本区别

Linux命令 ls 和 ll 的使用方法与基本区别 Linux 命令 ls 和 ll 的使用方法&#xff1a; ll&#xff1a;罗列出当前文件或目录的详细信息&#xff0c;含有时间、读写权限、大小、时间等信息 &#xff0c;像Windows显示的详细信息。ll是“ls -l"的别名。相当于Windows里的…

Linux ll指令介绍

经常会用到ll指令来查看文件等&#xff0c;这里记录一下查看的详情信息 介绍样例 drwxrwxrwx 3 root root 4096 Oct 30 10:41 backup drwxrwxrwx 表示文件的属性。Linux的文件基本上分为三个属性&#xff1a;可读&#xff08;r&#xff09;&#xff0c;可写&#xff08;w&…

Linux命令`ll`的各列什么意思

下面是随便一个目录下的ll命令&#xff0c;显示的结果分为7个列。 第1列是文件类型加权限 第一个字符为文件类型 d表示目录l表示软连接-表示文件c表示字符设备文件 后面的字符分为三组 所有者u&#xff08;r表示可读&#xff0c;w表示可写&#xff0c;x表示可执行&#xff09…