数学建模——熵权+TOPSIS+肘部法则+系统聚类
文章目录
- 一、起因
- 二、代码展示
一、起因
我本科的数学建模队长找上我,让我帮她写下matlab代码,当然用的模型还是曾经打比赛的模型,所以虽然代码量多,但是写的很快,也是正逢中秋,有点时间。
当然我也没想到,研一刚开学这论文就这么水灵灵的要发出来了,队长的实力还是遥遥领先啊,在这里,祝她们的论文一次见刊!
二、代码展示
差不多有460行代码这样
%% 获取数据
[num,txt,raw] = xlsread('C:\Users\19468\Desktop\zhibiao1.xlsx',1);%% 标准化MIN = min(num); %各指标的最大值
MAX = max(num); %各指标的最小值
NUM_B = []; %保存标准化后的数据
for i = 1:size(num,1) % 运行31个省份for j = 1:size(num,2) % 1个省份的23个数据NUM_B(i,j) = (num(i,j)-MIN(j))/(MAX(j) - MIN(j));end
end%% 对个别指标正向化
% 对指标在第5,10,11,13,14、22列进行正向化
Z = [5,10,11,13,14,22]; % 保存正向化列数
NUM_B_Z = NUM_B; % 存放标准化正向化后的数据
for i = 1:size(num,1) % 运行31个省份for j=1:size(Z,2) % 5列数据NUM_B_Z(i,Z(j)) = 1 - NUM_B(i,Z(j));end
end%% 对二级指标进行熵权+TOPSIS,保留各省份各一级指标的数据
TOP_one = [1,2,3,4,5]; % 第一个一级指标
TOP_two = [6,7,8]; % 第二个一级指标
TOP_three = [9,10,11,12,13]; % 第三个一级指标
TOP_four = [14,15]; % 第四个一级指标
TOP_five = [16,17,18,19]; % 第五个一级指标
TOP_six = [20,21,22,23]; % 第六个一级指标TOP_one_data = NUM_B_Z(:,1:5); % 第一个一级指标的数据
TOP_two_data = NUM_B_Z(:,6:8); % 第二个一级指标的数据
TOP_three_data = NUM_B_Z(:,9:13); % 第三个一级指标的数据
TOP_four_data = NUM_B_Z(:,14:15); % 第四个一级指标的数据
TOP_five_data = NUM_B_Z(:,16:19); % 第五个一级指标的数据
TOP_six_data = NUM_B_Z(:,20:23); % 第六个一级指标的数据% NUM_B_Z_W(:,:,1) = TOP_one_data;
% NUM_B_Z_W(:,:,2) = TOP_two_data;
% NUM_B_Z_W(:,:,3) = TOP_three_data;
% NUM_B_Z_W(:,:,4) = TOP_four_data;
% NUM_B_Z_W(:,:,5) = TOP_five_data;% 熵权法+TOPSIS
% 指标一
Z = TOP_one_data;
[n,m] = size(Z);
D = zeros(1,m); % 初始化保存信息效用值的行向量
for i = 1:mx = Z(:,i); % 取出第i列的指标p = x / sum(x);% 注意,p有可能为0,此时计算ln(p)*p时,Matlab会返回NaN,所以要判断n = length(p); % 向量的长度lnp = zeros(n,1); % 初始化最后的结果for j = 1:n % 开始循环if p(j) == 0 % 如果第i个元素为0lnp(j) = 0; % 那么返回的第i个结果也为0elselnp(j) = log(p(j));endend%到这里结束e = -sum(p .* lnp) / log(n); % 计算信息熵D(i) = 1- e; % 计算信息效用值
end
W = D ./ sum(D); % 将信息效用值归一化,得到权重
WD_min = min(TOP_one_data);
D_max = max(TOP_one_data);zonghedefen_one = 1:31; %生成记录点
for i = 1:31%利用(C = D-/((D-)+(D+)))topsis模型与熵权进行结合D_jia = sqrt(W(1)*(TOP_one_data(i,1)-D_max(1))^2 + W(2)*(TOP_one_data(i,2)-D_max(2))^2 + ...W(3)*(TOP_one_data(i,3)-D_max(3))^2 + W(4)*(TOP_one_data(i,4)-D_max(4))^2 + ...W(5)*(TOP_one_data(i,5)-D_max(5))^2);D_jian = sqrt(W(1)*(TOP_one_data(i,1)-D_min(1))^2 + W(2)*(TOP_one_data(i,2)-D_min(2))^2 + ...W(3)*(TOP_one_data(i,3)-D_min(1))^2 + W(4)*(TOP_one_data(i,4)-D_min(2))^2 + ...W(5)*(TOP_one_data(i,5)-D_min(1))^2);zonghedefen_one(i) = D_jian/(D_jia+D_jian); % 一次就是产生31个数据
endzonghedefen_one = zonghedefen_one'; % 指标二
Z = TOP_two_data;
[n,m] = size(Z);
D = zeros(1,m); % 初始化保存信息效用值的行向量
for i = 1:mx = Z(:,i); % 取出第i列的指标p = x / sum(x);% 注意,p有可能为0,此时计算ln(p)*p时,Matlab会返回NaN,所以要判断n = length(p); % 向量的长度lnp = zeros(n,1); % 初始化最后的结果for j = 1:n % 开始循环if p(j) == 0 % 如果第i个元素为0lnp(j) = 0; % 那么返回的第i个结果也为0elselnp(j) = log(p(j));endend%到这里结束e = -sum(p .* lnp) / log(n); % 计算信息熵D(i) = 1- e; % 计算信息效用值
end
W = D ./ sum(D); % 将信息效用值归一化,得到权重
WD_min = min(TOP_two_data);
D_max = max(TOP_two_data);zonghedefen_two = 1:31; %生成记录点
for i = 1:31%利用(C = D-/((D-)+(D+)))topsis模型与熵权进行结合D_jia = sqrt(W(1)*(TOP_two_data(i,1)-D_max(1))^2 + W(2)*(TOP_two_data(i,2)-D_max(2))^2 + ...W(3)*(TOP_two_data(i,3)-D_max(3))^2);D_jian = sqrt(W(1)*(TOP_two_data(i,1)-D_min(1))^2 + W(2)*(TOP_two_data(i,2)-D_min(2))^2 + ...W(3)*(TOP_two_data(i,3)-D_min(1))^2);zonghedefen_two(i) = D_jian/(D_jia+D_jian); % 一次就是产生31个数据
endzonghedefen_two = zonghedefen_two'; % 指标三
Z = TOP_three_data;
[n,m] = size(Z);
D = zeros(1,m); % 初始化保存信息效用值的行向量
for i = 1:mx = Z(:,i); % 取出第i列的指标p = x / sum(x);% 注意,p有可能为0,此时计算ln(p)*p时,Matlab会返回NaN,所以要判断n = length(p); % 向量的长度lnp = zeros(n,1); % 初始化最后的结果for j = 1:n % 开始循环if p(j) == 0 % 如果第i个元素为0lnp(j) = 0; % 那么返回的第i个结果也为0elselnp(j) = log(p(j));endend%到这里结束e = -sum(p .* lnp) / log(n); % 计算信息熵D(i) = 1- e; % 计算信息效用值
end
W = D ./ sum(D); % 将信息效用值归一化,得到权重
WD_min = min(TOP_three_data);
D_max = max(TOP_three_data);zonghedefen_three = 1:31; %生成记录点
for i = 1:31%利用(C = D-/((D-)+(D+)))topsis模型与熵权进行结合D_jia = sqrt(W(1)*(TOP_three_data(i,1)-D_max(1))^2 + W(2)*(TOP_three_data(i,2)-D_max(2))^2 + ...W(3)*(TOP_three_data(i,3)-D_max(3))^2 + W(4)*(TOP_three_data(i,4)-D_max(4))^2 + ...W(5)*(TOP_three_data(i,5)-D_max(5))^2);D_jian = sqrt(W(1)*(TOP_three_data(i,1)-D_min(1))^2 + W(2)*(TOP_three_data(i,2)-D_min(2))^2 + ...W(3)*(TOP_three_data(i,3)-D_min(3))^2 + W(4)*(TOP_three_data(i,4)-D_min(4))^2 + ...W(5)*(TOP_three_data(i,5)-D_min(5))^2);zonghedefen_three(i) = D_jian/(D_jia+D_jian); % 一次就是产生31个数据
endzonghedefen_three = zonghedefen_three';% 指标四
Z = TOP_four_data;
[n,m] = size(Z);
D = zeros(1,m); % 初始化保存信息效用值的行向量
for i = 1:mx = Z(:,i); % 取出第i列的指标p = x / sum(x);% 注意,p有可能为0,此时计算ln(p)*p时,Matlab会返回NaN,所以要判断n = length(p); % 向量的长度lnp = zeros(n,1); % 初始化最后的结果for j = 1:n % 开始循环if p(j) == 0 % 如果第i个元素为0lnp(j) = 0; % 那么返回的第i个结果也为0elselnp(j) = log(p(j));endend%到这里结束e = -sum(p .* lnp) / log(n); % 计算信息熵D(i) = 1- e; % 计算信息效用值
end
W = D ./ sum(D); % 将信息效用值归一化,得到权重
WD_min = min(TOP_four_data);
D_max = max(TOP_four_data);zonghedefen_four = 1:31; %生成记录点
for i = 1:31%利用(C = D-/((D-)+(D+)))topsis模型与熵权进行结合D_jia = sqrt(W(1)*(TOP_four_data(i,1)-D_max(1))^2 + W(2)*(TOP_four_data(i,2)-D_max(2))^2);D_jian = sqrt(W(1)*(TOP_four_data(i,1)-D_min(1))^2 + W(2)*(TOP_four_data(i,2)-D_min(2))^2);zonghedefen_four(i) = D_jian/(D_jia+D_jian); % 一次就是产生31个数据
endzonghedefen_four = zonghedefen_four'; % 指标五
Z = TOP_five_data;
[n,m] = size(Z);
D = zeros(1,m); % 初始化保存信息效用值的行向量
for i = 1:mx = Z(:,i); % 取出第i列的指标p = x / sum(x);% 注意,p有可能为0,此时计算ln(p)*p时,Matlab会返回NaN,所以要判断n = length(p); % 向量的长度lnp = zeros(n,1); % 初始化最后的结果for j = 1:n % 开始循环if p(j) == 0 % 如果第i个元素为0lnp(j) = 0; % 那么返回的第i个结果也为0elselnp(j) = log(p(j));endend%到这里结束e = -sum(p .* lnp) / log(n); % 计算信息熵D(i) = 1- e; % 计算信息效用值
end
W = D ./ sum(D); % 将信息效用值归一化,得到权重
WD_min = min(TOP_five_data);
D_max = max(TOP_five_data);zonghedefen_five = 1:31; %生成记录点
for i = 1:31%利用(C = D-/((D-)+(D+)))topsis模型与熵权进行结合D_jia = sqrt(W(1)*(TOP_five_data(i,1)-D_max(1))^2 + W(2)*(TOP_five_data(i,2)-D_max(2))^2 + ...W(3)*(TOP_five_data(i,3)-D_max(3))^2 + W(4)*(TOP_five_data(i,4)-D_max(4))^2);D_jian = sqrt(W(1)*(TOP_five_data(i,1)-D_min(1))^2 + W(2)*(TOP_five_data(i,2)-D_min(2))^2 + ...W(3)*(TOP_five_data(i,3)-D_min(3))^2 + W(4)*(TOP_five_data(i,4)-D_min(4))^2);zonghedefen_five(i) = D_jian/(D_jia+D_jian); % 一次就是产生31个数据
endzonghedefen_five = zonghedefen_five'; % 指标六
Z = TOP_six_data;
[n,m] = size(Z);
D = zeros(1,m); % 初始化保存信息效用值的行向量
for i = 1:mx = Z(:,i); % 取出第i列的指标p = x / sum(x);% 注意,p有可能为0,此时计算ln(p)*p时,Matlab会返回NaN,所以要判断n = length(p); % 向量的长度lnp = zeros(n,1); % 初始化最后的结果for j = 1:n % 开始循环if p(j) == 0 % 如果第i个元素为0lnp(j) = 0; % 那么返回的第i个结果也为0elselnp(j) = log(p(j));endend%到这里结束e = -sum(p .* lnp) / log(n); % 计算信息熵D(i) = 1- e; % 计算信息效用值
end
W = D ./ sum(D); % 将信息效用值归一化,得到权重
WD_min = min(TOP_six_data);
D_max = max(TOP_six_data);zonghedefen_six = 1:31; %生成记录点
for i = 1:31%利用(C = D-/((D-)+(D+)))topsis模型与熵权进行结合D_jia = sqrt(W(1)*(TOP_six_data(i,1)-D_max(1))^2 + W(2)*(TOP_six_data(i,2)-D_max(2))^2 + ...W(3)*(TOP_six_data(i,3)-D_max(3))^2 + W(4)*(TOP_six_data(i,4)-D_max(4))^2);D_jian = sqrt(W(1)*(TOP_six_data(i,1)-D_min(1))^2 + W(2)*(TOP_six_data(i,2)-D_min(2))^2 + ...W(3)*(TOP_six_data(i,3)-D_min(3))^2 + W(4)*(TOP_six_data(i,4)-D_min(4))^2);zonghedefen_six(i) = D_jian/(D_jia+D_jian); % 一次就是产生31个数据
endzonghedefen_six = zonghedefen_six';%% 数据整合
zonghedefen = [zonghedefen_one,zonghedefen_two,zonghedefen_three,zonghedefen_four,zonghedefen_five,zonghedefen_six];
% xlswrite('C:\Users\19468\Desktop\writing_two.xlsx',zonghedefen);%% 对一级指标熵权+TOPSIS,保留各一级指标的熵值,信息效用值以及权重,以及最终得分
Z = zonghedefen;
[n,m] = size(Z);
D = zeros(1,m); % 初始化保存信息效用值的行向量
for i = 1:mx = Z(:,i); % 取出第i列的指标p = x / sum(x);% 注意,p有可能为0,此时计算ln(p)*p时,Matlab会返回NaN,所以要判断n = length(p); % 向量的长度lnp = zeros(n,1); % 初始化最后的结果for j = 1:n % 开始循环if p(j) == 0 % 如果第i个元素为0lnp(j) = 0; % 那么返回的第i个结果也为0elselnp(j) = log(p(j));endend%到这里结束e(i) = -sum(p .* lnp) / log(n); % 计算信息熵D(i) = 1- e(i); % 计算信息效用值
end
W = D ./ sum(D); % 将信息效用值归一化,得到权重
WD_min = min(zonghedefen);
D_max = max(zonghedefen);zonghedefen_last = 1:31; %生成记录点
for i = 1:31%利用(C = D-/((D-)+(D+)))topsis模型与熵权进行结合D_jia = sqrt(W(1)*(zonghedefen(i,1)-D_max(1))^2 + W(2)*(zonghedefen(i,2)-D_max(2))^2 + ...W(3)*(zonghedefen(i,3)-D_max(3))^2 + W(4)*(zonghedefen(i,4)-D_max(4))^2 + ...W(5)*(zonghedefen(i,5)-D_max(5))^2 + W(6)*(zonghedefen(i,6)-D_max(6))^2);D_jian = sqrt(W(1)*(zonghedefen(i,1)-D_min(1))^2 + W(2)*(zonghedefen(i,2)-D_min(2))^2 + ...W(3)*(zonghedefen(i,3)-D_min(3))^2 + W(4)*(zonghedefen(i,4)-D_min(4))^2 + ...W(5)*(zonghedefen(i,5)-D_min(5))^2 + W(6)*(zonghedefen(i,6)-D_min(6))^2);zonghedefen_last(i) = D_jian/(D_jia+D_jian); % 一次就是产生31个数据
endzonghedefen_last = zonghedefen_last';
e = e';
D = D';
W = W';%% 肘部法制聚类(一级)
[n, p] = size(zonghedefen_last);
K = 8;
D = zeros(K, 2);
for k = 2:K[label, c, sumd, d] = kmeans(zonghedefen_last, k, 'dist', 'sqeuclidean');% data,n×p原始数据向量% label,n×1向量,聚类结果标签;% c,k×p向量,k个聚类质心的位置% sumd,k×1向量,类间所有点与该类质心点距离之和% d,n×k向量,每个点与聚类质心的距离sse1 = sum(sumd.^2);D(k, 1) = k;D(k, 2) = sse1;
end
% 绘制聚类偏差图
plot(D(2:end, 1), D(2:end, 2), 'o-');
title('不同K值聚类偏差图')
xlabel('分类数(K值)')
ylabel('簇内误差平方和')%% 肘部法制聚类(二级)
[n, p] = size(zonghedefen);
K = 8;
D = zeros(K, 2);
for k = 2:K[label, c, sumd, d] = kmeans(zonghedefen, k, 'dist', 'sqeuclidean');% data,n×p原始数据向量% label,n×1向量,聚类结果标签;% c,k×p向量,k个聚类质心的位置% sumd,k×1向量,类间所有点与该类质心点距离之和% d,n×k向量,每个点与聚类质心的距离sse1 = sum(sumd.^2);D(k, 1) = k;D(k, 2) = sse1;
end
% 绘制聚类偏差图
plot(D(2:end, 1), D(2:end, 2), 'o-');
title('不同K值聚类偏差图')
xlabel('分类数(K值)')
ylabel('簇内误差平方和')%% 系统聚类(一级)
% 执行系统聚类
Z = linkage(zonghedefen_last, 'ward');% 绘制树状图
figure;
dendrogram(Z);
title('Hierarchical Clustering Dendrogram');% 如果你想要裁剪树状图以显示特定数量的聚类,可以使用以下代码
% 例如,我们想要将数据聚类为4个类别
k = 4;
figure;
dendrogram(Z, k);
title(['Hierarchical Clustering Dendrogram with ', num2str(k), ' clusters']);% 裁剪树状图并获取聚类索引
idx = cluster(Z, 'maxclust', k);% 绘制裁剪后的聚类结果
figure;
gscatter(zonghedefen_last(:,1), idx);
title(['Hierarchical Clustering with ', num2str(k), ' clusters']);
xlabel('Feature 1');
ylabel('Feature 2');
legend('Location', 'best');%% 系统聚类(二级)% % 执行系统聚类
% Z = linkage(zonghedefen, 'ward');
%
% % 绘制树状图
% figure;
% dendrogram(Z);
% title('Hierarchical Clustering Dendrogram');
%
% % 如果你想要裁剪树状图以显示特定数量的聚类,可以使用以下代码
% % 例如,我们想要将数据聚类为4个类别
% k = 4;
% figure;
% dendrogram(Z, k);
% title(['Hierarchical Clustering Dendrogram with ', num2str(k), ' clusters']);
%
% % 裁剪树状图并获取聚类索引
% idx = cluster(Z, 'maxclust', k);
%
% % 绘制裁剪后的聚类结果
% figure;
% gscatter(zonghedefen(:,1),zonghedefen(:,2),zonghedefen(:,3),zonghedefen(:,4),zonghedefen(:,5),zonghedefen(:,6), idx);
% title(['Hierarchical Clustering with ', num2str(k), ' clusters']);
% xlabel('Feature 1');
% ylabel('Feature 2');
% legend('Location', 'best');
相关文章:
数学建模——熵权+TOPSIS+肘部法则+系统聚类
文章目录 一、起因二、代码展示 一、起因 我本科的数学建模队长找上我,让我帮她写下matlab代码,当然用的模型还是曾经打比赛的模型,所以虽然代码量多,但是写的很快,也是正逢中秋,有点时间。 当然我也没想到…...

Java | Leetcode Java题解之第403题青蛙过河
题目: 题解: class Solution {public boolean canCross(int[] stones) {int n stones.length;boolean[][] dp new boolean[n][n];dp[0][0] true;for (int i 1; i < n; i) {if (stones[i] - stones[i - 1] > i) {return false;}}for (int i 1…...
828华为云征文|华为Flexus云服务器搭建OnlyOffice私有化在线办公套件
一、引言 在当今数字化办公的时代,在线办公套件的需求日益增长。华为Flexus云服务器凭借其强大的性能和稳定性,为搭建OnlyOffice私有化在线办公套件提供了理想的平台。在2024年9月14日这个充满探索精神的日子里,我们开启利用华为Flexus云服务…...

[Java]maven从入门到进阶
介绍 apache旗下的开源项目,用于管理和构建java项目的工具 官网: Welcome to The Apache Software Foundation! 1.依赖管理 通过简单的配置, 就可以方便的管理项目依赖的资源(jar包), 避免版本冲突问题 优势: 基于项目对象模型(POM),通过一小段描述信息来管理项目的构建 2…...

Leetcode面试经典150题-130.被围绕的区域
给你一个 m x n 的矩阵 board ,由若干字符 X 和 O 组成,捕获 所有 被围绕的区域: 连接:一个单元格与水平或垂直方向上相邻的单元格连接。区域:连接所有 O 的单元格来形成一个区域。围绕:如果您可以用 X 单…...

Ruffle 继续在开源软件中支持 Adobe Flash Player
大多数人已经无需考虑对早已寿终正寝的 Adobe Flash 的支持,但对于那些仍有一些 Adobe Flash/SWF 格式的旧资产,或想重温一些基于 Flash 的旧游戏/娱乐项目的人来说,开源 Ruffle 项目仍是 2024 年及以后处理 Flash 的主要竞争者之一。 Ruffl…...

【postgres】笔记
数据库相关笔记 1.分区表创建时间戳设置问题2.查询语句2.1查询数据库某表有多少行2.2 表中某列值类型是 1.分区表创建时间戳设置问题 今天早上发现postgres数据库表中总会隔4天丢失一天的数据,后来查了一下,发现是分区表创建的有问题。 如图所示 可以看…...
#if等命令的学习
预处理命令 #include(文件包含命令) #define(宏定义命令) #undef #if(条件编译) #ifdef #ifndef #elif #endif defined函数(与if等结合使用) 下面将解释上述各自的用法、使用…...

【有啥问啥】深入浅出马尔可夫链蒙特卡罗(Markov Chain Monte Carlo, MCMC)算法
深入浅出马尔可夫链蒙特卡罗(Markov Chain Monte Carlo, MCMC)算法 0. 引言 Markov Chain Monte Carlo(MCMC)是一类用于从复杂分布中采样的强大算法,特别是在难以直接计算分布的情况下。它广泛应用于统计学、机器学习…...

java企业办公自动化OA
技术架构: sshjbpm 功能描述: 用户管理,岗位管理,部门管理,权限管理,网上交流,贴吧,审批流转。权限管理是树状结构人性化操作,也可以用作论坛。 效果图:...

【leetcode】树形结构习题
二叉树的前序遍历 返回结果:[‘1’, ‘2’, ‘4’, ‘5’, ‘3’, ‘6’, ‘7’] 144.二叉树的前序遍历 - 迭代算法 给你二叉树的根节点 root ,返回它节点值的 前序 遍历。 示例 1: 输入:root [1,null,2,3] 输出:[1,…...

在ros2中安装gazebo遇到报错
安装命令: sudo apt-get install ros-${ROS_DISTRO}-ros-gz 报错如下: E: Unable to locate package ros-galactic-ros-gz 解决方法: 用如下安装命令: sudo apt install ros-galactic-ros-ign 问题解决!...

VMware vSphere 8.0 Update 3b 发布下载,新增功能概览
VMware vSphere 8.0 Update 3b 发布下载,新增功能概览 vSphere 8.0U3 | ESXi 8.0U3 & vCenter Server 8.0U3 请访问原文链接:https://sysin.org/blog/vmware-vsphere-8-u3/,查看最新版。原创作品,转载请保留出处。 作者主页…...

在设计开发中,如何提高网站的用户体验?
在网站设计开发中,提高用户体验是至关重要的。良好的用户体验不仅能提升用户的满意度和忠诚度,还能增加转化率和用户留存率。以下是一些有效的方法和策略: 优化页面加载速度 减少HTTP请求:合并CSS和JavaScript文件以减少HTTP请求…...

油耳拿什么清理比较好?好用的无线可视挖耳勺推荐
油耳的朋友通常都是用棉签来掏耳。这种方式是很不安全的。因为使用棉签戳破耳道和棉絮掉落在耳道中而引起感染的新闻不在少数。在使用过程中更加建议大家可视挖耳勺来清理会更好。不仅清晰度得干净而且安全会更高。但最近这几年我发现可视挖耳勺市面上不合格产品很多࿰…...
永久配置清华源,告别下载龟速
为了每次使用 pip 时自动使用清华源,可以通过以下步骤进行配置: 方法一:通过命令行配置 你可以在命令行中运行以下命令来自动设置清华源: pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple此命令会将…...

什么是数据库回表,又该如何避免
目录 一. 回表的概念二. 回表的影响三. 解决方案1. 使用覆盖索引2. 合理选择索引列3. 避免选择不必要的列4. 分析和优化查询5. 定期更新统计信息6. 避免使用SELECT DISTINCT或GROUP BY7. 使用适当的数据库设计 数据库中的“回表”是指在查询操作中,当数据库需要访问…...

UE5中使用UTexture2D进行纹理绘制
在UE中有时需要在CPU阶段操作像素,生成纹理贴图等,此时可以通过UTexture2D来进行处理,例子如下: 1.CPP部分 首先创建一个蓝图函数库,将UTexture2D的绘制逻辑封装成单个函数: .h: #include &…...

Matlab simulink建模与仿真 第十六章(用户定义函数库)
参考视频:simulink1.1simulink简介_哔哩哔哩_bilibili 一、用户定义函数库中的模块概览 注:MATLAB版本不同,可能有些模块也会有差异,但大体上区别是不大的。 二、Fcn/Matlab Fcn模块 1、Fcn模块 双击Fcn模块,在对话…...

每天练打字2:今日状况——完成击键5第1遍,赛文速度74.71
今日跟打:604字 总跟打:99883字 记录天数:2435天 (实际没有这么多天,这个是注册账号的天数) 平均每天:41字 练习常用单字中500,击键5,键准100%,两遍。&#x…...

idea大量爆红问题解决
问题描述 在学习和工作中,idea是程序员不可缺少的一个工具,但是突然在有些时候就会出现大量爆红的问题,发现无法跳转,无论是关机重启或者是替换root都无法解决 就是如上所展示的问题,但是程序依然可以启动。 问题解决…...

微信小程序之bind和catch
这两个呢,都是绑定事件用的,具体使用有些小区别。 官方文档: 事件冒泡处理不同 bind:绑定的事件会向上冒泡,即触发当前组件的事件后,还会继续触发父组件的相同事件。例如,有一个子视图绑定了b…...
椭圆曲线密码学(ECC)
一、ECC算法概述 椭圆曲线密码学(Elliptic Curve Cryptography)是基于椭圆曲线数学理论的公钥密码系统,由Neal Koblitz和Victor Miller在1985年独立提出。相比RSA,ECC在相同安全强度下密钥更短(256位ECC ≈ 3072位RSA…...

基于ASP.NET+ SQL Server实现(Web)医院信息管理系统
医院信息管理系统 1. 课程设计内容 在 visual studio 2017 平台上,开发一个“医院信息管理系统”Web 程序。 2. 课程设计目的 综合运用 c#.net 知识,在 vs 2017 平台上,进行 ASP.NET 应用程序和简易网站的开发;初步熟悉开发一…...
【解密LSTM、GRU如何解决传统RNN梯度消失问题】
解密LSTM与GRU:如何让RNN变得更聪明? 在深度学习的世界里,循环神经网络(RNN)以其卓越的序列数据处理能力广泛应用于自然语言处理、时间序列预测等领域。然而,传统RNN存在的一个严重问题——梯度消失&#…...
django filter 统计数量 按属性去重
在Django中,如果你想要根据某个属性对查询集进行去重并统计数量,你可以使用values()方法配合annotate()方法来实现。这里有两种常见的方法来完成这个需求: 方法1:使用annotate()和Count 假设你有一个模型Item,并且你想…...
鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个医院查看报告小程序
一、开发环境准备 工具安装: 下载安装DevEco Studio 4.0(支持HarmonyOS 5)配置HarmonyOS SDK 5.0确保Node.js版本≥14 项目初始化: ohpm init harmony/hospital-report-app 二、核心功能模块实现 1. 报告列表…...
在鸿蒙HarmonyOS 5中使用DevEco Studio实现录音机应用
1. 项目配置与权限设置 1.1 配置module.json5 {"module": {"requestPermissions": [{"name": "ohos.permission.MICROPHONE","reason": "录音需要麦克风权限"},{"name": "ohos.permission.WRITE…...

【JavaWeb】Docker项目部署
引言 之前学习了Linux操作系统的常见命令,在Linux上安装软件,以及如何在Linux上部署一个单体项目,大多数同学都会有相同的感受,那就是麻烦。 核心体现在三点: 命令太多了,记不住 软件安装包名字复杂&…...
大数据学习(132)-HIve数据分析
🍋🍋大数据学习🍋🍋 🔥系列专栏: 👑哲学语录: 用力所能及,改变世界。 💖如果觉得博主的文章还不错的话,请点赞👍收藏⭐️留言Ǵ…...