数学建模竞赛常用代码总结-PythonMatlab

数学建模过程中有许多可复用的基础代码,在此对 python 以及 MATLAB 中常用代码进行简单总结,该总结会进行实时更新。

一、文件读取

python (pandas)

文件后缀名(扩展名)并不是必须的,其作用主要一方面是提示系统是用什么软件打开,另一方面提示文件内容格式。如.txt, .csv, .tsv 文件均为纯文本文件,只是 .csv, .tsv 说明了数据的分割方式分别为, 与 \t 。既然都是文本文件,那就都可用 pandas.read_csv 或 pandas.read_table 等进行读取,这里采用 pandas.read_csv 。

.txt 文件

import pandas as pd

tsvfile = pd.read_csv(‘filename.txt’)

tsvfile = pd.read_csv(‘filename.txt’,skiprows=1)#跳过首行

.csv 文件

import pandas as pd

tsvfile = pd.read_csv(‘filename.csv’)

tsvfile = pd.read_csv(‘filename.csv’,skiprows=1)#跳过表头

.tsv 文件

import pandas as pd

tsvfile = pd.read_csv(‘filename.tsv’, sep=‘\t’)

.json 文件

import pandas as pd

jsonfile = pd.read_json(‘filename.json’, orient = ‘records’)

.csv 文件转.json 文件

import csv

import json

csvfile = open(‘filename.tsv’,r)

jsonfile = open(‘filename.json’,w)

fieldnames = (“key1”,“key2”,“key3”)

reader = csv.DictReader(csvfile,fieldnames)

for row in reader:

json.dump(row,jsonfile)jsonfile.write('\\n')

.xlsx 文件

excel 是二进制文件,它保存有关工作簿中所有工作表的信息,也可对数据进行有关操作。

import pandas as pd

# 读取 Excel 数据,选取 sheet1 工作表

sheet_1 = pd.read_excel(‘demo.xlsx’, sheet_name=‘Sheet1’, na_values=‘n/a’)

# 打印 sheet 表名

print(pd.ExcelFile(‘listings.xlsx’).sheet_names)

# 打印数据头部

print(sheet_1.head())

.xlsx 文件转 .csv

import pandas as pd

def xlsx_to_csv_pd():

data_xls = pd.read_excel(‘demo.xlsx’, index_col=0)

data_xls.to_csv(‘demo.csv’, encoding=‘utf-8’)

.csv 文件转 .xlsx

import pandas as pd

def csv_to_xlsx_pd():

csv = pd.read_csv(‘1.csv’, encoding=‘utf-8’)

csv.to_excel(‘1.xlsx’, sheet_name=‘data’)

MATLAB

同样的原因,MATLAB 读取文本文件均可用 textscan 。

.txt 文件

clc;clear;

filename = ‘filename.txt’;

file = fopen(filename);%打开文件

columns = ‘s%s%s%s%s%s%’;%读几列就有几个’s%’

data = textscan(filename,columns,‘delimiter’, ’ ');%以制表符分隔

fclose(file);

.csv 文件

clc;clear;

filename = ‘filename.csv’;

file = fopen(filename);%打开文件

columns = ‘s%s%s%s%s%s%’;%读几列就有几个’s%’

data=textscan(filename,columns,‘delimiter’, ‘,’);%以 , 分隔

fclose(file);

.tsv 文件

clc;clear;

filename = ‘filename.tsv’;

file = fopen(filename);%打开文件

columns = ‘s%s%s%s%s%s%’;%读几列就有几个’s%’

data=textscan(filename,columns,‘delimiter’, ’ ');%以制表符分隔

fclose(file);

.json 文件

MATLAB 读取 .json 文件需要下载 jsonlab 包。

clc;clear;

addpath(‘E:\PIR\PIR_V3.0\jsonlab-1.5’); %添加jsonlab包的存放路径

filename = ‘filename.json’; %文件名称

jsonData = loadjson(filename);%jsonData是struct结构

data = jsonData.u’;

二、绘图

MATLAB

点状图

plot(xi,yi,‘>’,‘Color’,[x/255 x/255 x/255]);%右三角,颜色为(x,x,x)

%符号可为’o’,‘.’,‘+’,‘>’,'<'等

xlabel(‘x/x’)

ylabel(‘y/y’)

title(‘Title’)

set(gcf,‘unit’,‘normalized’,‘position’,[0.2,0.2,0.8,0.6]);%固定大小

折线图

xi= 1: 0.25:76;

yi = interp1(X,Y,xi,‘spline’);%插值,将步长由1变为0.25

plot(xi,yi,‘Color’,[x/255 x/255 x/255],‘LineWidth’,1);%颜色为(x,x,x),线条粗细为1

xlabel(‘x/x’)

ylabel(‘y/y’)

title(‘Title’)

set(gcf,‘unit’,‘normalized’,‘position’,[0.2,0.2,0.8,0.6]);%固定大小

条形图

y=[1 2 3,1 2 3];%分组条形图

tiledlayout(2,1)%指定纵横比

bar(y);

bar(x,y);

bar(y,‘stacked’);%与y=[1 2 3,1 2 3]结合,同一个柱形上分层显示

bar(x,y,0.6);%相对宽度控制间隔

bar(y,‘FaceColor’,[0 .5 .5],‘EdgeColor’,[0 .9 .9],‘LineWidth’,1.5);%多参数

y = [10 15 20; 30 35 40; 50 55 62];

b = bar(y);

b(3).FaceColor = [.2 .6 .5];%每组第三列设为绿色

其他功能

%绘制多张

figure(i);

%plot

hold on;

figure(i+1);

%plot

%多线同图

%plot

hold on;

%plot

python

点状图

import matplotlib.pyplot as plt

plt.rcParams[‘figure.figsize’] = (48.0, 30.0) # 设置figure_size尺寸

plt.plot(X,Y,‘.’)

plt.xlabel(“x-label”,fontproperties=zhfont,fontsize=‘32’)

plt.ylabel(“y-label”,fontproperties=zhfont,fontsize=‘32’)

plt.title(“title”,fontproperties=zhfont,fontsize=‘32’)

折线图

import matplotlib.pyplot as plt

plt.rcParams[‘figure.figsize’] = (48.0, 30.0) # 设置figure_size尺寸

plt.plot(X,Y)

plt.xlabel(“x-label”,fontproperties=zhfont,fontsize=‘32’)

plt.ylabel(“y-label”,fontproperties=zhfont,fontsize=‘32’)

plt.title(“title”,fontproperties=zhfont,fontsize=‘32’)

其他常用功能

# 绘制多张

plt.subplot(221) # 两行两列的第一个

plt.plot(X1,Y1,‘.’)

plt.subplot(222) # 两行两列的第二个

plt.plot(X2,Y2,‘.’)

plt.subplot(223) # 两行两列的第三个

plt.plot(X3,Y3,‘.’)

plt.subplot(224) # 两行两列的第四个

plt.plot(X4,Y4,‘.’)

# 多张同图

plt.plot(X1,Y1,‘.’)

plt.plot(X2,Y2,‘.’)

# 设置分辨率

## 绘制分辨率

plt.rcParams[‘figure.figsize’] = (24.0, 20.0) # 默认的像素为[6.0,4.0],分辨率为100,图片尺寸为 600&400

plt.rcParams[‘figure.dpi’] = 300 # 直接设置分辨率,一般使用这两种方式之一

## 保存分辨率

plt.rcParams[‘savefig.dpi’] = 300 # 预先设定保存图片像素

plt.savefig(‘demo.jpg’, dpi=200) # 保存时指定分辨率,一般使用这两种方式之一

# title 格式

## 该条(title 格式)参考`开码牛`的博客

plt.title(‘Interesting Graph’,fontsize=‘large’,fontweight=‘bold’) 设置字体大小与格式

plt.title(‘Interesting Graph’,color=‘blue’) 设置字体颜色

plt.title(‘Interesting Graph’,loc =‘left’) 设置字体位置

plt.title(‘Interesting Graph’,verticalalignment=‘bottom’) 设置垂直对齐方式

plt.title(‘Interesting Graph’,rotation=45) 设置字体旋转角度

plt.title(‘Interesting’,bbox=dict(facecolor=‘g’, edgecolor=‘blue’, alpha=0.65 )) 标题边框

常用配色

#5d7a9a#ec554a#ffad60#8bc24c#2d2d2d
#bc8420#593e1a#ffeb28#996699#0fff95
---------------------------END---------------------------

题外话

在这里插入图片描述

感兴趣的小伙伴,赠送全套Python学习资料,包含面试题、简历资料等具体看下方。

👉CSDN大礼包🎁:全网最全《Python学习资料》免费赠送🆓!(安全链接,放心点击)

一、Python所有方向的学习路线

Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照下面的知识点去找对应的学习资源,保证自己学得较为全面。

img
img

二、Python必备开发工具

工具都帮大家整理好了,安装就可直接上手!img

三、最新Python学习笔记

当我学到一定基础,有自己的理解能力的时候,会去阅读一些前辈整理的书籍或者手写的笔记资料,这些笔记详细记载了他们对一些技术点的理解,这些理解是比较独到,可以学到不一样的思路。

img

四、Python视频合集

观看全面零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。

img

五、实战案例

纸上得来终觉浅,要学会跟着视频一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

img

六、面试宝典

在这里插入图片描述

在这里插入图片描述

简历模板在这里插入图片描述

👉CSDN大礼包🎁:全网最全《Python学习资料》免费赠送🆓!(安全链接,放心点击)

若有侵权,请联系删除

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/72486.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

每日一题(设计循环队列)

每日一题&#xff08;设计循环队列&#xff09; 622. 设计循环队列 - 力扣&#xff08;LeetCode&#xff09; 1.题意解读 本题只能为队列开辟k个单位空间&#xff0c;并且只能利用这几个空间进行数据的存储。 思路&#xff1a;本题使用数组来实现队列是比较方便的&#xff0c…

网络是如何进行通信

网络是如何进行通信的 简介 在现代社会中&#xff0c;网络已经成为我们生活中不可或缺的一部分。从上网搜索信息、在线购物到远程工作和社交媒体&#xff0c;我们几乎无时无刻不与网络保持着联系。但是&#xff0c;网络究竟是个什么玩意&#xff0c;它是如何工作的呢&#xf…

OpenCV 01(图像加载与显示)

一、机器视觉 现在说的机器视觉(Machine Vision)一般指计算机视觉(Computer Vision), 简单来说就是研究如何使机器看懂东西。就是是指用摄影机和电脑代替人眼对目标进行识别、跟踪和测量等机器视觉&#xff0c;并进一步做图形处理&#xff0c;使电脑处理成为更适合人眼观察或传…

道一云·七巧对接打通金蝶云星空查询七巧表单接口与供应商新增接口

道一云七巧对接打通金蝶云星空查询七巧表单接口与供应商新增接口 数据源平台:道一云七巧 道一云七巧拥有强大的自定义表单设计工具&#xff0c;并配置工作流程&#xff0c;通过流程智能流转&#xff0c;打通各个业务场景中的审批、协作环节&#xff0c;包含数据采集单、任务单…

用于独立系统应用的光伏MPPT铅酸电池充电控制器建模(Simulink实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

【0906 C高级day1】 Linux中的文件相关指令

一、使用cut截取出Ubuntu用户的家目录&#xff0c;要求&#xff1a;不能使用":"作为分割 grep "ubuntu" /etc/passwd | cut -d "/" -n -f 2-3 | cut -c 1-11 二、思维导图 文件相关指令&#xff1a;

WordPress(5)在主题中添加文章字数和预计阅读时间

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 样式图一、添加位置二、找到主题文件样式图 提示:以下是本篇文章正文内容,下面案例可供参考 一、添加位置 二、找到主题文件 在主题目录下functions.php文件把下面的代码添加进去: // 文章字数…

记一次生产环境服务卡死排查记录

接现场运维报告某java服务CPU狂飙&#xff0c;服务处于卡死无响应状态 询问现场运维什么场景造成的&#xff0c;答复是偶发现象&#xff0c;没有规律&#xff0c;和请求高峰期并没有关系。 因为服务是负载均衡的&#xff08;A、B两台&#xff09;&#xff0c;临时处理让运维重…

go语言学习笔记

Go学习 一直想学一门新语言&#xff0c;难度又不想太大&#xff0c;C和Java都会但是不怎么精通&#xff0c;某天看到Go语言&#xff0c;好的&#xff0c;就是它了。总体来说&#xff0c;go语言的学习还是相对简单&#xff0c;有编程基础的入手很快。 简介 go是一种并发、带垃…

第15章_锁: (表级锁、页级锁、行锁、悲观锁、乐观锁、全局锁、死锁)

3.2 从数据操作的粒度划分&#xff1a;表级锁、页级锁、行锁 为了提高数据库并发度&#xff0c;每次锁定的数据范围越小越好&#xff0c;理论上每次只锁定当前操作的数据的方案会得到最大的并发度&#xff0c;但管理锁是很耗资源&#xff08;涉及获取、检查、释放锁等动作)。因…

全网超50万粉丝的Linux大咖良许,出书了!

全网超50万粉丝的Linux大咖良许 出书了&#xff01; 今天我们要说的就是这本由Linux领域头部号主&#xff0c;良许老师编写的这本《速学Linux&#xff1a;系统应用从入门到精通》 如果你是刚开始学习Linux的小白同学&#xff0c;相信你已经体会到与学习一门编程语言相比&…

fastjson 1.2.24 反序列化导致任意命令执行漏洞复现

拉取docker容器 访问并抓包 修改为POST 方式&#xff0c;文件类型改为json格式&#xff0c;发送json数据包&#xff0c;发送成功 这里安装一个bp的插件 使用安装的插件 可以看到&#xff0c;插件告诉我们这里有漏洞&#xff0c;并且提供了POC 既然我们发现有 rmi &#xff0c;…

【数字通信原理】笔记(持续更新ing)

通信原理学习笔记&#xff0c;课程见b站: 由于教材不同&#xff0c;我们的课程使用的是《数字通信原理》主编:李白萍 版本&#xff0c;因此此笔记以我们的教材为主整理up主的笔记。 详情见:通信原理 文章目录 第一章 绪论1. 通信的基本概念2. 信息的量度3. 通信系统的性能指标 …

【多思路附源码】2023高教社杯 国赛数学建模C题思路 - 蔬菜类商品的自动定价与补货决策

赛题介绍 在生鲜商超中&#xff0c;一般蔬菜类商品的保鲜期都比较短&#xff0c;且品相随销售时间的增加而变差&#xff0c; 大部分品种如当日未售出&#xff0c;隔日就无法再售。因此&#xff0c; 商超通常会根据各商品的历史销售和需 求情况每天进行补货。 由于商超销售的蔬…

如何修改VS2017、VS2019、VS2022中C++默认版本

首先明确VS各个版本对C标准的支持情况&#xff1a; IC版本 VS版本 支持情况 C11 2015完全支持 &#xff0c;13基本支持&#xff0c;12部分支持&#xff0c;10以及以下不支持 完全支持 C14 2017完全支持 &#xff0c;15基本支持&#xff0c;13部分支持 完全支…

国内访问香港服务器选择什么路线?

​  国内访问香港服务器可以选择多种路线。首先&#xff0c;我们了解下各个线路的速度延迟。 一、CN2直连&#xff1a;解决了不同互联网服务提供商之间访问的难题&#xff0c;不需要绕到国际网络再从中国的三个网络入口进入。 二、优化直连&#xff1a;全国平均延迟60ms&…

UNIAPP之js/nvue混淆探索

因项目需要对UNIAPP的js混淆做了一些调研 混淆教程: https://uniapp.dcloud.net.cn/tutorial/app-sec-confusion.html 按照教程配置进行打包正式包进行混淆 下载正式包将 .ipa改为.zip 解压获取到HBuilder.app 右键显示包内容 获取到混淆的key 不同时间进行打包混淆同一文…

解决Microsoft Edge无法正常运行的有效方案分享!

Microsoft Edge打不开或不能加载网页是用户在Windows 10、Android、Mac和iOS设备上的网络浏览器上遇到的许多错误之一。其他Microsoft Edge问题可能包括浏览器窗口和选项卡冻结、网站崩溃、互联网连接错误消息以及丢失Microsoft Edge书签、收藏夹、密码和收藏。 Microsoft Edg…

【启扬方案】启扬多尺寸安卓屏一体机,助力仓储物料管理系统智能化管理

随着企业供应链管理的不断发展&#xff0c;对仓储物料管理的要求日益提高。企业需要实时追踪和管理物料的流动&#xff0c;提高物流效率、降低库存成本和减少库存的风险。因此&#xff0c;仓储物料管理系统的实现成为必要的手段。 仓储物料管理系统一体机作为一种新型的物料管理…

Linux:工具(vim,gcc/g++,make/Makefile,yum,git,gdb)

目录 ---工具功能 1. vim 1.1 vim的模式 1.2 vim常见指令 2. gcc/g 2.1 预备知识 2.2 gcc的使用 3.make,Makefile make.Makefile的使用 4.yum --yum三板斧 5.git --git三板斧 --Linux下提交代码到远程仓库 6.gdb 6.1 gdb的常用指令 学习目标&#xff1a; 1.知道…