首页 > 其他分享 >冲刺数学建模(1)

冲刺数学建模(1)

时间:2023-07-18 23:44:43浏览次数:36  
标签:10 xlsx 矩阵 dataA 建模 冲刺 命令 数学 数据

MATLAB基础操作

开始时间2023-07-18 21:08:59

结束时间2023-07-18 23:34:43

前言:出去完了好几天,又在家里躺了两天尸,稍微认真学一点吧,简单开个新篇章,呜呼!

A.1 Matlab帮助的使用

1 help elfun %关于基本函数的帮助信息
2 help exp %指数函数exp的帮助信息
1.help

1 当要查找具有某种功能但不知道准确名字的指令时,help的能力就不够了,lookfor可根据用户提供的完整或不完整的关键词,去搜索出一组与之相关的指令。
2 lookfor integral %寻找有关积分的命令
3 lookfor fourier %查找能进行傅里叶变换的指令
lookfor命令

1 在MATLAB中,关于有关函数的“帮助”信息可以用doc命令以超文本的方式给出
2 doc
3 doc doc
4 doc eig %eig求矩阵的特征值和特征向量
超文本格式的帮助

1 可以从MathWorks网站上下载有关的pdf{}“帮助”文件。
pdf“帮助”文件

 A.2 数据的输入

1 (1)要直接输入矩阵时,矩阵一行中的元素用空格或逗号分隔;矩阵行与行之间用分号“;”分隔,整个矩阵放在方括号“[]”中。
2 (2)矩阵的分行输入
简单矩阵的输入

 1 ans %用于结果的默认变量名
 2 pi %圆周率
 3 eps %浮点相对精度
 4 inf %无穷大,如1/0
 5 NaN %不定量(非数),如0/0
 6 i(j) %i=j=根号下-1
 7 nargin %所用函数的输入变量数目
 8 nargout %所用函数的输出变量数目
 9 realmin %最小可用正实数
10 realmax %最大可用正实数
特殊变量
1 t=[0:0.1:10]
2 %产生0~10的行向量,元素之间的间隔为0.1
3 t=linspace(n1,n2,n)
4 %产生n1和n2之间线性均匀分布的n个数
5 (默认n时,产生100个数)
6 t=logspace(n1,n2,n)
7 %在10的n1次方和10的n2次方之间按照对照对数距离等间距产生n个数
8 (默认n时,产生50个数) 
特殊向量 特殊矩阵

A.3 绘图命令

 1 二维绘图的基本命令有 plot,loglog,semilogx,semilogy 和 polarplot。
 2 它们的使用方法基本相同,其不同特点是在不同的坐标中绘制图形。
 3 plot 命令使用线性坐标空间绘制图形;
 4 loglog 命今在两个对数坐标空间中绘制图形;
 5 而 semilogx(或 semilogy)命令使用x轴 (或1轴) 为对数刻度,另外一个轴为线性刻度的坐标空间绘制图形;
 6 polarplot 使用极坐标空间绘制图形。
 7 二维绘图命令 plot 为了适应各种绘图需要,提供了用于控制线色、数据点和线型的 3 组基本参数。它的使用格式如下:
 8 plot(x,y,'color_point linestyle')
 9 如果多重曲线对应不同的向量绘制,可使用命今plot(t1,x1,t2,x2,t3,x3)
10 subplot 命令使得在一个屏幕上可以分开显示 n个不同坐标系,且可分别在每一个坐标系中绘制曲线
11 其命令格式如下
12 subplot(r,c,p)
13 在图形绘制完毕后,执行如下命令可以再在图中加入标题、标号、说明和分格线等。这些命令有 title.xlabel,ylabel,text,gtext 等。
14 它们的命令格式如下title('My Title’) ,xlabel('My X-axis Label)
15 ylabel(My Y-axis Label’).
16 text(x,y,'Text for annotation')
17 gtext('Text for annotation'), grid
18 gtext命令是使用鼠标器定位的文字注释命令当输入命令后,可以在屏幕上得到一个光标,然后使用鼠标器控制它的位置。按鼠标器的左键,即可确定文字设定的位置。
19 hold on 是图形保持命令,可以把当前图形保持在屏幕上不变,同时在这个坐标系内绘制另外一个图形。hold 命令是一个交替转换命令,即执行一次,转变一个状态 (相当于 hold on、hold off)
二维绘图命令

A.3.2 显函数、符号函数或隐函数的绘图

1 folot(fum,lims)绘制由字符串 fn 指定函数名的函数在X轴区间为 lims-[xmim,xmax]的函数图。
2 若ims=[xmin,xmax,ymin,ymax],则y轴也被限制。
函数

A.3.3 三维图形

1 在实际工程计算中,最常用的三维绘图是三维曲线图、三维网格图和三维曲面图 3 种基本类型。与此对应,Matlab 也提供了一些三维基本绘图命令,如三维曲线命令 plot3 和 fplot3。三维网格图命令 mesh和fmesh,三维表面图命今surf和fsurf。其中的fplot3fmesh 和 fsurf 是使用函数进行绘图,比较方便,也容易使用。还有 3 维隐函数画图命令 fimplicit3,下面给出这些函数的用法示例。
三维图形
1 plot3(x,y,z)通过描点连线画出曲线,这里x,y,z都是n维向量,分别表示该曲线上点集的横坐标、纵坐标、竖坐标。
三维曲线
1 命令mesh(x,y,z)画网格曲面。这里x,y,z是三个同维数的数据矩阵,分别表示数据点的横坐标、纵坐标、竖坐标,命令mesh(x,y,z)将该数据点在空间中描出,并连成网格。
网格图
1 命令surf(x,y,z)画三维表面图,这里x,y,z是三个同维数的数据矩阵,分别表示数据点的横坐标、纵坐标、竖坐标。
表面图
1 隐函数,可以直接使用隐函数画图命令fimplicit3画图;
2 还可以先把旋转曲面化成参数方程,使用命令fmesh画图。
旋转曲面
Matlab中使用绘图命令fmesh或fsurf,画显函数或参数方程表示的二次曲面很方便,或者直接使用fimlicit3画隐函数表示的二次曲面
二次曲面图形

A.4 数据处理

1 把Matlab工作空间中的数据矩阵a,b,c保存到数据文件dataA_27.mat中。
2 save  dataA_27.mat  a  b  c
3 注:Matlab中的默认数据文件mat文件可以省略后缀名。
4 把例A.27生成的dataA_27.mat中的所有数据加载到Matlab工作空间中。
5 load('dataA_27.mat') 
MATLAB中的默认数据文件mat文件
 1 可以把word文档中整行整列的数据粘贴到纯文本文件,然后调入到Matlab工作空间中。
 2  把纯文本文件dataA_29.txt加载到工作空间。
 3 a=load('dataA_29.txt');
 4 或者是
 5 b=readmatrix('dataA_29.txt');
 6 使用writematrix命令把矩阵b保存到纯文本文件dataA_30.txt。
 7 b=randi([0,10],3)  %生成3阶随机整数矩阵
 8 writematrix(b,'dataA_30.txt')
 9 生成服从标准正态分布随机数的 矩阵,再保存到Excel文件dataA31.xlsx。
10 clc, clear, a=normrnd(0,1,100,200);
11 writematrix(a, 'dataA_31.xlsx')
纯文本文件
1 把一个 矩阵写到Excel文件dataA_32.xlsx表单Sheet2中B2开始的域中。
2 a=rand(5,10); warning('off')
3 writematrix(a, 'dataA_32.xlsx', 'Sheet', 2, 'Range', 'B2')
4 把例A.32生成的Excel文件dataA_32.xlsx中表单Sheet2的域“C3:F6”中的数据赋给b。
5 b=readmatrix('dataA_32.xlsx','Sheet',2,'Range','C3:F6')
Excel文件
 1 统计下列五行字符串中字符a、c、g、t出现的频数。
 2 1.aggcacggaaaaacgggaataacggaggaggacttggcacggcattacacggagg
 3 2.cggaggacaaacgggatggcggtattggaggtggcggactgttcgggga
 4 3.gggacggatacggattctggccacggacggaaaggaggacacggcggacataca
 5 4.atggataacggaaacaaaccagacaaacttcggtagaaatacagaagctta
 6 5.cggctggcggacaacggactggcggattccaaaaacggaggaggcggacggaggc
 7 
 8  把上述五行复制到一个纯文本数据文件dataA_34_1.txt中,编写如下程序:
 9 clc, clear, f=fopen('dataA_34_1.txt'); i=1;
10 while (~feof(f))
11     d=fgetl(f); a=sum(d==97); c=sum(d==99);
12     g=sum(d==103); t=sum(d==116);
13     n=sum(d>=97&d<=122); %检验26个小写字符的个数
14     s(i,:)=[a, c, g, t, n, a+c+g+t];
15     i=i+1;
16 end
17 s, he=sum(s)
18 writematrix(s,'dataA_34_2.txt')
19 其他的一些字符串处理命令有strcmp,strfind等。
字符串数据
 1 例A.35  把一个比较大的bmp图像文件dataA_35_1.bmp,转化成比较小的jpg文件,命名成dataA35_2.jpg,并显示。
 2 
 3 a=imread('dataA_35_1.bmp'); subplot(121), imshow(a)
 4 imwrite(a,'dataA_35_2.jpg');
 5 subplot(122), imshow('dataA_35_2.jpg')
 6 例A.36  生成10幅彩色jpg文件,依次命名成A_36_1.jpg,…,A_36_10.jpg。
 7 
 8 clc, clear
 9 for i=1:10
10     str=['A_36_',int2str(i),'.jpg'];
11     a(:,:,1)=rand(500); a(:,:,2)=rand(500)+100; a(:,:,3)=rand(500)+200;
12     imwrite(a,str);
13 end
图像文件
 1 例A.37  现有数据文件A_37_1.xlsx,…,A_37_5.xlsx,用命令importdata读入数据。
 2 
 3 clc, clear
 4 mydata=cell(1, 5); %初始化存放各个文件数据的细胞数组
 5 for k=1:5
 6     filename=sprintf('A_37_%d.xlsx', k); %构造文件名的格式化字符串
 7     mydata{k}=importdata(filename); %从文件导入数据
 8 end
 9 celldisp(mydata) %显示细胞数组的数据
10 
11 例A.38  现有数据文件A_38_01.xlsx,…,A_38_05.xlsx,读入各Excel文件的第2个表单(Sheet2)的域“A1:C3”的数据。
12 
13 clc, clear, d=cell(1,5); %初始化
14 for k=1:5
15     fileName=sprintf('A_38_%02d.xlsx',k);
16     d{k}=readmatrix(fileName,'Sheet',2,'Range','A1:C3');
17 end
18 celldisp(d) %显示细胞数组的数据
19 
20 例A.39  读入当前目录下所有后缀名为xlsx的Excel文件的数据。
21 
22 clc, clear
23 fi=dir('*.xlsx') %提出Excel文件的信息,返回值是结构数组
24 n=length(fi); %计算Excel文件的个数
25 d=cell(1,n); %初始化
26 for k=1:n
27     d{k}=importdata(fi(k).name);
28 end
29 celldisp(d) %显示细胞数组的数据
数据的批处理
1 clc, clear
2 rng('shuffle')  %根据当前时间为随机数生成器提供种子
3 a=randn(6,1); %生成服从标准正态分布的伪随机数
4 b=[today:today+5]'  %从今天到后面5天
5 c=datetime(b,'ConvertFrom','datenum')
6 T=array2timetable(a,'RowTimes',c)  %生成时间序列数据
7 T.a(3)=NaN;  %将第3个数据变为缺失值NaN
8 newT=fillmissing(T,'linear') %用线性插值填补时间序列中的缺失数据
9 data=table2array(newT) %时间序列数据转成普通数据
时间序列处理数据
 1 Matlab日期和时间的函数有datenum,now,clock,date,calendar,eomday,weekday,addtodate,etime等。
 2 例A.41  统计1601年1月到2000年12月,每月的13日分别出现在星期日、星期一、星期二,…,星期六的频数,并画出对应的柱状图。
 3 
 4         注:Matlab中weekday的1对应“星期日”,2对应“星期一”,…,7对应“星期六”。
 5         解  所画出的柱状图见图A.1,Matlab程序如下:
 6 clc, clear, c=zeros(1,7);
 7 for y=1601:2000
 8     for m=1:12
 9         d=datetime(y,m,13);
10         w=weekday(d);
11         c(w)=c(w)+1;
12     end
13 end
14 c, bar(c)  %显示频数并画出频数的柱状图
15 axis([0 8 680 690])
16 line([0,8],[4800/7,4800/7],'linewidth',4,'color','k')
17 set(gca,'xticklabel',{'Su','M','Tu','W','Th','F','Sa'})
日期和时间

 1 Matlab除了支持各种图像文件的读写等操作,还支持视频文件的相应处理。实际上,视频文件本质上是由多帧具有一定大小、顺序、格式的图像组成的,只是一般的图像是静止的,而视频是可以将多帧静止的图像进行连续显示,从而达到动态效果。
 2 
 3 例A.42  读取一个视频文件test.avi,并把视频中的每一帧保存成jpg文件。
 4 
 5 clc,clear
 6 ob=VideoReader('test.avi')     %读取视频文件对象
 7 n=ob.NumFrames;  %获取视频的总帧数
 8 for i=1:n
 9     a=read(ob,i); %读取视频对象的第i帧
10     imshow(a)  %显示第i帧图像
11     str=['pic\',int2str(i),'.jpg']; %构造文件名的字符串,目录pic要提前建好
12     imwrite(a,str); %把第i帧保存到jpg文件
13 end
视频文件

总结:使用了一波MATLAB这个软件,它不像所学的c语言,c++语言,py、java,它更像是一种工具,是一种由高级语言搭建起来的对数据和文件进行处理和操作的应用程序,而学的各种方法更像是这个应用程序的操作指南。形象一点,我现在有一些钢铁塑料,有人用聪明的双手将原材料打造成一个洗衣机(用高级语言创造出应用程序),然后要做的工作是学习如何把脏衣服用洗衣机洗干净的操作。使用的大概一个星期,我发现MATLAB数据可视化和数据分析方面十分强大,也存在编程的工作,虽然我不认为我的高级语言学的很好,但是MATLAB编程仍是非显著式编程我有高级语言的底子在入门还是很轻松的,好了,就不多说了。

标签:10,xlsx,矩阵,dataA,建模,冲刺,命令,数学,数据
From: https://www.cnblogs.com/R-f-12/p/17564379.html

相关文章

  • 高中数学竞赛——平面几何板块引航1
    出自平几引路人曹珏贇老师讲义,希望对大家有所帮助,想要学到思想的最好还是去听曹老师的课程......
  • 组合数学
    目录鸽巢原理鸽巢原理n+1只鸽子飞进n个笼子,必定有一个笼子出现2只鸽子将n个物体,划分为k组,那么至少存在一个分组,含有大于或等于\(\left\lceil\dfrac{n}{k}\right\rceil\)个物品......
  • 数学分析——史济怀,课程板书截屏
             ......
  • poj 1844 sum (数学)
    题意:给出一个数S,从1到N个数,每个数前面可以是负号或者是正号,这样累加起来,结果可以等于S,问最小的N是多少。题解:因为从1一直加到n的值(假设为sum(n))等于sum的n是最小的。所以我们先算出sum(n)大于等于sum的那个n。这样我们可以得出一个值m=sum(n)-sum.如果m==0那么n就是我们要求的......
  • 2023冲刺国赛模拟 38.1
    又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又垫......
  • 【组合数学】康托展开 学习笔记
    康托展开将\(1...n\)的所有排列按照字典序进行排序,某个排列的排名可以通过康托展开的方法求出。原理观察排列\(2,3,1,4\)和\(2,3,4,1\),发现第一个不同的位置是第三位,而且第一个排列的第三位比第二个小,根据字典序的性质,第一个排列的排名在第二个之前。从这里我们也可以发......
  • 冲刺国赛模拟 38
    我球球你们不要到处转发我博客点踩了。这玩意已经超过yspm峰值了,这就是钓鱼的动力吗。还没踩过的赶紧去踩一下。然而yspm的强大之处在于每天都能保证5-20个踩不等,不得不说非常厉害。二次整数规划在写了,估计今天晚上能写完。求求你们不要让我写树上邻域数点。我是不是学yspm......
  • 组合数学相关
    组合数学相关约定:无特殊说明,以下字母所代表的数均为非负整数。一些符合及其含义\(n!:=1\times2\times3\times…\timesn\),特别地,\(0!=1\)$\binom{n}{m}=\frac{n!}{m!(n-m)!}$,表示\(n\)个数无顺序选出\(m\)个数的方案数,称作组合数。$n\brackm$a.k.a$......
  • 时间序列的季节性:3种模式及8种建模方法
    分析和处理季节性是时间序列分析中的一个关键工作,在本文中我们将描述三种类型的季节性以及常见的8种建模方法。什么是季节性?季节性是构成时间序列的关键因素之一,是指在一段时间内以相似强度重复的系统运动。季节变化可以由各种因素引起,例如天气、日历或经济条件。各种应用程......
  • 组合数学学习笔记
    组合数学学习笔记组合数学常用公式基本公式排列:\[A_{n}^r=\frac{n!}{(n-r)!}\]组合:\[C_{n}^r=\frac{n!}{r!(n-r)!}\\\dbinom{n}{r}=\frac{n!}{r!(n-r)!}\]组合公式杨辉恒等式......