数学建模程序

一.数据预处理

1.缺失数据查找

wps实现(最简单的方法)

https://zhidao.baidu.com/question/1690641178558189228.html

matlab实现

B = xlsread('C:\Users\DELL\Desktop\新建文件夹\cumcm2012a\附件1-葡萄酒品尝评分表.xls','第一组红葡萄酒品尝评分','C75:L84');
A = B;
[I,J]= size(A);

for j=1:J
   for i=2:I % the 1st row does not contain NaN
      if isnan(A(i,j))  %通过isnan函数判断该数据是否为NaN类型
       disp(['(',num2str(i),',',num2str(j),')']);   %如果是NaN类型则打印该数据在表格中的位置
      end  
   end
end

python实现(https://blog.csdn.net/alanguoo/article/details/77198503)

import pandas as pd

import numpy as np

df = pd.DataFrame(np.random.randn(10, 6))

# Make a few areas have NaN values

df.iloc[1:3, 1] = np.nan

df.iloc[5, 3] = np.nan

df.iloc[7:9, 5] = np.nan

print(df)

print(df.index[np.where(np.isnan(df))[0]])  #打印缺失值的行
print(df.columns[np.where(np.isnan(df))[1]])    #打印缺失值的列

2.异常数据查找

z-score标准化(matlab实现)

B = xlsread('C:\Users\DELL\Desktop\新建文件夹\cumcm2012a\附件1-葡萄酒品尝评分表.xls','第一组白葡萄酒品尝评分','D233:M233');
%将数据z-score标准化
A = zscore(B)
disp(A)
%获取矩阵的行数和列数,m为行数,n为列数
[m,n] = size(A)
for i = 1:n
    %确定一个阈值,用来判断是否是异常数据
    if abs(A(1,i))>2
        disp(['(1,',num2str(i),')'])
    end
end

二.聚类分析

1.一维数据的聚类分析

参考博文:https://www.biaodianfu.com/clustering-on-a-one-dimensional-array.html

matlab实现(参考博文:https://jingyan.baidu.com/article/0202781154d7ba1bcc9ce5f5.html)

clc;

clear;

yw_data=xlsread('C:\Users\DELL\Desktop\第二问得分.xls');      %读入一维数据样本到yw_data矩阵

A = yw_data';

xx=A;

clus=4;

[idx,c]=kmeans(xx,clus);

cc1=[];

cc2=[];

cc3=[];

cc4=[];

[n,m]=size(xx);

for i=1:n

    if idx(i)==1

        cc1=[cc1;xx(i)];

    elseif idx(i)==2

        cc2=[cc2;xx(i)];

    elseif idx(i)==3

        cc3=[cc3;xx(i)];

     elseif idx(i)==4

        cc4=[cc4;xx(i)];

    end

end

disp('第一类边界')

[min(cc1),max(cc1)]

disp('第二类边界')

[min(cc2),max(cc2)]

disp('第三类边界')

[min(cc3),max(cc3)] 

disp('第四类边界')

[min(cc4),max(cc4)] 

disp('四类中心')

c

h1=plot(xx,'w');grid on;hold on; 

for i=1:n

    if idx(i)==1

        text(i,xx(i),num2str(idx(i)),'color',[1 0 0]);

    elseif idx(i)==2

        text(i,xx(i),num2str(idx(i)),'color',[0 1 0]);

    elseif idx(i)==3

        text(i,xx(i),num2str(idx(i)),'color',[0 0 1]);

    elseif idx(i)==4

        text(i,xx(i),num2str(idx(i)),'color',[1 0 1]);

    end

end

ylabel('一维样本数据值')

xlabel('样本序列')

2.二维数据的聚类分析

参考博文:https://blog.csdn.net/zpp1994/article/details/53456306

https://blog.csdn.net/wys7541/article/details/82153844

数学建模程序代码资料合集是一个收集了各类数学建模程序代码的资源汇总。该合集包含了各种使用MATLAB编写的算法代码,可以帮助研究者和学生快速了解和应用数学建模的方法。 在数学建模过程中,代码的编写是非常重要的一环。借助代码,我们可以实现对数学模型的求解和优化,从而得出科学有效的结果。在这个合集中,你可以找到各类经典数学算法的代码实现,例如线性规划、整数规划、非线性规划、最小二乘法、插值与拟合等。 使用MATLAB编程语言,你可以在该合集中找到各种算法的具体实现代码。只需找到你感兴趣的算法,复制代码到MATLAB编辑器中,你就可以直接使用它们。这些代码通常是高效和可扩展的,可以适用于不同的数学建模问题。 此外,该合集还可以帮助你更好地理解不同算法的原理和应用。在代码中,你可以看到每个步骤的详细注释,帮助你理解代码的逻辑和数学公式的推导过程。这对于初学者来说非常有益,可以加深对数学建模方法的理解和掌握。 综上所述,数学建模程序代码资料合集是一个非常有价值的资源,可以帮助你快速入门和应用数学建模。不仅可以提供各类MATLAB算法代码供你使用,还可以帮助你加深对数学建模方法的理解。无论是研究还是学习,该合集都是一个非常实用的参考资料。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值