我是靠谱客的博主 自觉宝贝,最近开发中收集的这篇文章主要介绍数学建模——MATLAB基础知识,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

前言: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:n
Sn=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 mainfun
x=5
nextfun1
function nextfun1
x=x+1;
end
disp(x)
end

数据的预处理

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

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

2.原因

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

3.常用标准化方法

  • min-max标准化(归一化)------>>>>>>
  • z-score标准化(规范化)适用于最大值最小值未知的情况--->>
  • 尺度变换 ------>>>>
  • 中心化------->>>

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 array
0
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 array
1
0
0
0
0
0
0
0
1
0
1
0
0
0
1
1
0
1
0
0

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

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

部分例子

 x=1:10
x([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.

最后

以上就是自觉宝贝为你收集整理的数学建模——MATLAB基础知识的全部内容,希望文章能够帮你解决数学建模——MATLAB基础知识所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(59)

评论列表共有 0 条评论

立即
投稿
返回
顶部