基于Matlab求解2023华为杯研究生数学建模竞赛E题——出血性脑卒中临床智能诊疗建模实现步骤(附上源码+数据)

文章目录,源码见文末下载

  • 背景介绍
  • 准备工作:处理数据
  • 第一题:血肿扩张风险相关因素探索建模
    • a)问题
    • b)问题
  • 第二题: 血肿周围水肿的发生及进展建模,并探索治疗干预和水肿进展的关联关系
    • a)问题
    • b)问题
    • c)问题
    • d)问题
  • 第三题:出血性脑卒中患者预后预测及关键因素探索。
    • a)问题
    • b)问题
    • c)问题
  • 完整源码+数据下载

背景介绍

出血性脑卒中指非外伤性脑实质内血管破裂引起的脑出血,占全部脑卒中发病率的10-15%。其病因复杂,通常因脑动脉瘤破裂、脑动脉异常等因素,导致血液从破裂的血管涌入脑组织,从而造成脑部机械性损伤,并引发一系列复杂的生理病理反应。出血性脑卒中起病急、进展快,预后较差,急性期内病死率高达45-50%,约80%的患者会遗留较严重的神经功能障碍,为社会及患者家庭带来沉重的健康和经济负担。因此,发掘出血性脑卒中的发病风险,整合影像学特征、患者临床信息及临床诊疗方案,精准预测患者预后,并据此优化临床决策具有重要的临床意义。

出血性脑卒中后,血肿范围扩大是预后不良的重要危险因素之一。在出血发生后的短时间内,血肿范围可能因脑组织受损、炎症反应等因素逐渐扩大,导致颅内压迅速增加,从而引发神经功能进一步恶化,甚至危及患者生命。因此,监测和控制血肿的扩张是临床关注的重点之一。此外,血肿周围的水肿作为脑出血后继发性损伤的标志,在近年来引起了临床广泛关注。血肿周围的水肿可能导致脑组织受压,进而影响神经元功能,使脑组织进一步受损,进而加重患者神经功能损伤。综上所述,针对出血性脑卒中后的两个重要关键事件,即血肿扩张和血肿周围水肿的发生及发展,进行早期识别和预测对于改善患者预后、提升其生活质量具有重要意义。

医学影像技术的飞速进步,为无创动态监测出血性脑卒中后脑组织损伤和演变提供了有力手段。近年来,迅速发展并广泛应用于医学领域的人工智能技术,为海量影像数据的深度挖掘和智能分析带来了全新机遇。期望能够基于本赛题提供的影像信息,联合患者个人信息、治疗方案和预后等数据,构建智能诊疗模型,明确导致出血性脑卒中预后不良的危险因素,实现精准个性化的疗效评估和预后预测。相信在不久的将来,相关研究成果及科学依据将能够进一步应用于临床实践,为改善出血性脑卒中患者预后作出贡南献。

图1.左图脑出血患者CT平扫,右图红色为血肿,黄色为血肿周围水肿:
在这里插入图片描述

准备工作:处理数据

读取、整理和保存数据。通过对数据的处理和整合,建立一个名为Table的矩阵,用于后续的建模分析:

  1. 读取数据表格文件,并将数据存储在相应的变量中。对数据进行预处理,将缺失值替换为空字符串,并对性别进行编码(男为1,女为2)。

  2. 整理数据,将表格数据按照预定的格式整理为一个名为Table的矩阵。Table的第一行是表头,包括患者、流水号、时间和各个指标的名称。

  3. 循环遍历数据表中的每一行(除去表头),对于每一行数据,获取从发病到第一次诊断的时间长度delta_t0和第一次诊断的日期t1

  4. 根据流水号在附表1中找到对应的行列索引,获取后续诊断日期t2

  5. 计算时间轴上每次随诊距离发病的时间长度time

  6. 统计每次检查的数据,如果有缺失则不记录。根据附表1中的日期和表格2中的数据,将患者编号、诊断日期、时间长度、表格1中的数据、表格2中的数据和表格3中的数据整合为一行,添加到Table中。

  7. 对于缺失数据,根据样本间的差异,取附件3个数据集中的附件3指标的平均值补充。

  8. 将整理好的Table保存在名为data的文件中。

第一题:血肿扩张风险相关因素探索建模

a)问题

  • 请根据“表1”(字段:入院首次影像检查流水号,发病到首次影像检查时间间隔),“表2”(字段:各时间点流水号及对应的HM_volume),判断患者sub001至sub100发病后48小时内是否发生血肿扩张事件。
  • 结果填写规范:1是0否,填写位置:“表4”C字段(是否发生血肿扩张)。
  • 如发生血肿扩张事件,请同时记录血肿扩张发生时间。
  • 结果填写规范:如10.33小时,填写位置:“表4”D字段(血肿扩张时间)。
  • 是否发生血肿扩张可根据血肿体积前后变化,具体定义为:后续检查比首次检查绝对体积增加≥6 mL或相对体积增加≥33%。
  • 注:可通过流水号至“附表1-检索表格-流水号vs时间”中查询相应影像检查时间点,结合发病到首次影像时间间隔和后续影像检查时间间隔,判断当前影像检查是否在发病48小时内。

具体代码实现思路步骤:

  1. 首先,通过unique函数从表格"Table"的第一列中提取唯一值,并将结果保存在变量"Num"中。

  2. 接下来,定义了四个空变量:A、B、Y和T。这些变量将用于保存患者的指标、拟合参数、是否发病的标签以及静脉扩张时间。

  3. 使用一个循环,遍历"Num"中的每个唯一值。

  4. 在每次循环中,首先找到表格"Table"中与当前唯一值匹配的行的索引,并将这些行的第4列及其之后的数据保存在变量"A"中。

  5. 然后,将这些行的第3列数据保存在变量"t"中,将第23列数据保存在变量"HM_volume"中。

  6. 判断"HM_volume"的长度是否大于0,如果大于0,说明有多个数据可以用于线性回归。则使用regress函数进行线性回归,将回归系数保存在变量"b"中。

  7. 如果"HM_volume"的长度等于0,说明只有一个数据,那么就需要使用样本数据中最接近的其他样本对应的参数进行匹配。首先将A进行归一化处理,然后计算最后一个样本与其他样本的距离,找到距离最近的样本,将其对应的参数保存在变量"B"中。

  8. 继续循环,将变量"b"保存在变量"B"中。

  9. 然后,将时间网格化,精度为0.1,从第一次诊断到发病的第48小时内,生成一个时间序列"t1"。

  10. 使用回归参数"b"计算"t1"对应的HM_volume值,保存在变量"HM_volume_48"中。

  11. 找到HM_volume_48与HM_volume(1)的比值大于1.33的索引,并保存在变量"a1"中。

  12. 找到HM_volume_48与HM_volume(1)的差值大于6000的索引,并保存在变量"a2"中。

  13. 将"a1"和"a2"的索引合并,保存在变量"aa"中。

  14. 判断"aa"的长度是否大于0,如果大于0,说明发生了发病,将变量"Y"中对应位置的值设为1,并将变量"t1"中第一个满足条件的时间保存在变量"T"中。

  15. 如果"aa"的长度等于0,说明没有发病,将变量"Y"中对应位置的值设为0。

  16. 循环结束后,将"Num"、“Y"和"T"合并为一个结果矩阵"result1”,其中保存了每个患者的唯一值、是否发病的标签和静脉扩张时间。

b)问题

  • 请以是否发生血肿扩张事件为目标变量,基于“表1” 前100例患者(sub001至sub100)的个人史,疾病史,发病相关(字段E至W)、“表2”中其影像检查结果(字段C至X)及“表3”其影像检查结果(字段C至AG,注:只可包含对应患者首次影像检查记录)等变量,构建模型预测所有患者(sub001至sub160)发生血肿扩张的概率。
  • 注:该问只可纳入患者首次影像检查信息。
  • 结果填写规范:记录预测事件发生概率(取值范围0-1,小数点后保留4位数);填写位置:“表4”E字段(血肿扩张预测概率)。

具体代码实现思路步骤:

  1. 首先,使用mapminmax函数将变量"A"进行归一化处理,结果保存在变量"In"中。同时,将标签变量"Y"转置后保存在变量"Out"中。

  2. 将数据集划分为训练集和测试集,其中前100个样本用于训练,101到130个样本用于测试集1,131到160个样本用于测试集2。

  3. 创建一个bp神经网络,网络的输入层节点数为输入数据的一半,隐藏层节点数为输入数据的四分之一,激活函数使用tansig。

  4. 设置神经网络的训练参数,包括最大迭代次数、目标误差、最小梯度、学习速率和最大确认失败次数等。

  5. 使用训练数据对神经网络进行训练。

  6. 对训练集、测试集1和测试集2进行仿真测试,使用训练好的神经网络对输入数据进行预测,并将预测结果保存在变量"t_sim"、"t_sim1"和"t_sim2"中。

  7. 对预测结果进行四舍五入处理,得到最终的预测结果,保存在变量"T_sim"、"T_sim1"和"T_sim2"中。

  8. 绘制混淆矩阵,分别对训练集、测试集1和测试集2的真实标签和预测结果进行可视化。

  9. 最后,将预测结果"t_sim"、"t_sim1"和"t_sim2"添加到之前的结果矩阵"result1"中,并将结果矩阵保存在变量"result1"中。结果矩阵包括患者编号、是否发生血肿扩张、血肿扩张时间和血肿扩张的预测概率。

第二题: 血肿周围水肿的发生及进展建模,并探索治疗干预和水肿进展的关联关系

a)问题

  • 请根据“表2”前100个患者(sub001至sub100)的水肿体积(ED_volume)和重复检查时间点,构建一条全体患者水肿体积随时间进展曲线(x轴:发病至影像检查时间,y轴:水肿体积,y=f(x)),计算前100个患者(sub001至sub100)真实值和所拟合曲线之间存在的残差。
  • 结果填写规范:记录残差,填写位置“表4”F字段(残差(全体))。

具体代码实现思路步骤:

  1. 首先通过unique函数找出数据表第二行及以后的第一列中的唯一值,保存在变量Num中。

  2. 创建空矩阵TEDA,用于分别记录复查时间、水肿数据和除此诊断信息。

  3. 循环遍历Num中的每个值,对于每个值,找出数据表中第一列等于该值的行的索引,保存在变量a中。

  4. 将对应行的第4列及之后的数据转换为double类型,并添加到矩阵A中。

  5. 将对应行的第3列数据转换为double类型,并添加到矩阵T中。

  6. 将对应行的第34列数据转换为double类型,并添加到矩阵ED中。

  7. 绘制图形,横坐标为T,纵坐标为ED,点的形状为星号。

  8. 设置横坐标范围为1到2000。

  9. 使用高斯模型拟合数据,拟合结果保存在变量gaussModel中。

  10. 绘制高斯模型曲线。

  11. 设置横轴标题为"时间",纵轴标题为"水肿/10^-3ml"。

  12. 计算拟合值ED_fit

  13. 创建空矩阵Error,用于保存残差。

  14. 循环遍历Num中的每个值,对于每个值,找出数据表中第一列等于该值的行的索引,并将索引减去1,保存在变量a中。

  15. 计算拟合值与原始数据的绝对差的平均值,并保存在矩阵Error中的对应位置。

b)问题

  • 请探索患者水肿体积随时间进展模式的个体差异,构建不同人群(分亚组:3-5个)的水肿体积随时间进展曲线,并计算前100个患者(sub001至sub100)真实值和曲线间的残差。
  • 结果填写规范:记录残差,填写位置“表4”G字段(残差(亚组)),同时将所属亚组填写在H段(所属亚组)。

具体代码实现思路步骤:

  1. 设置聚类的中心数量为5,保存在变量cluster_n中。

  2. 使用模糊C均值聚类(FCM)算法对数据表的第4-15列指标进行聚类,聚类结果保存在变量centerUobj_fcn中。其中,center为聚类中心,U为隶属度矩阵,obj_fcn为目标函数值的变化。

  3. 绘制目标函数值的变化图,横轴为迭代次数,纵轴为目标函数值。

  4. 根据隶属度矩阵U中每个样本的最大隶属度确定所属的聚类中心,保存在变量u中。

  5. 创建空矩阵ED_fit2,用于保存聚类后的拟合值。

  6. 循环遍历聚类中心的数量,对于每个聚类中心,找出属于该聚类的样本的索引,保存在变量a中。

  7. 找出属于该聚类的样本在原始数据表中的索引,并保存在变量b中。

  8. 绘制图形,横坐标为T(b),纵坐标为ED(b),点的形状为星号。

  9. 设置横坐标范围为1到2000。

  10. 使用高斯模型拟合属于该聚类的样本,拟合结果保存在变量gaussModel中。

  11. 绘制高斯模型曲线。

  12. 设置横轴标题为"时间",纵轴标题为"水肿/10^-3ml"。

  13. 设置图标题为"亚类i",其中i为聚类中心的编号。

  14. 计算拟合值ED_fit2

  15. 创建空矩阵Error2,用于保存聚类后的残差。

  16. 循环遍历Num中的每个值,对于每个值,找出数据表中第一列等于该值的行的索引,并将索引减去1,保存在变量a中。

  17. 计算聚类后的拟合值与原始数据的绝对差的平均值,并保存在矩阵Error2中的对应位置。

  18. 将患者编号、全体残差、聚类后的残差和聚类结果合并成矩阵result2

c)问题

  • 请分析不同治疗方法(“表1”字段Q至W)对水肿体积进展模式的影响。

具体代码实现思路步骤:

  1. 创建空矩阵K,用于保存水肿指标的变化率。

  2. 循环遍历Num中的每个值,对于每个值,找出数据表中第一列等于该值的行的索引,保存在变量a中。

  3. 判断该患者的数据是否满足至少五次检查的要求,如果满足,则计算水肿指标的变化率。

  4. 将水肿指标变化率小于0的数据的索引保存在变量kk中。

  5. 如果kk的长度为0,说明水肿指标没有减少的情况,将K(i,1)设为0。

  6. 否则,计算水肿指标减少的平均值,并将结果保存在K(i,1)中。

  7. 如果数据不满足至少五次检查的要求,将K(i,1)设为NaN

  8. 找出K中不为NaN的数据的索引,保存在变量c中。

  9. 将数据表中第16-22列的数据转换为double类型,保存在变量G中。

  10. 将数据表第一行的第16-22列的数据保存在变量Z中。

  11. 循环遍历Z中的每个值,对于每个值,进行单因素方差分析。

  12. 计算方差分析的临界值fa

  13. 获取方差分析结果中的F值。

  14. 根据p值和F值的大小判断不同治疗方法对水肿进展模式的影响。

  15. 打印出影响显著的治疗方法的相关信息。

  16. 打印出不同治疗方法对水肿进展模式的影响大小的排序结果。

d)问题

  • 请分析血肿体积、水肿体积及治疗方法(“表1”字段Q至W)三者之间的关系。

具体代码实现思路步骤:

  1. 创建空矩阵K2,用于保存血肿指标的变化率。

  2. 循环遍历Num中的每个值,对于每个值,找出数据表中第一列等于该值的行的索引,保存在变量a中。

  3. 判断该患者的数据是否满足至少五次检查的要求,如果满足,则计算血肿指标的变化率。

  4. 将血肿指标变化率小于0的数据的索引保存在变量kk中。

  5. 如果kk的长度为0,说明血肿指标没有减少的情况,将K2(i,1)设为0。

  6. 否则,计算血肿指标减少的平均值,并将结果保存在K2(i,1)中。

  7. 如果数据不满足至少五次检查的要求,将K2(i,1)设为NaN

  8. 找出K2中不为NaN的数据的索引,保存在变量c中。

  9. 循环遍历Z中的每个值,对于每个值,进行单因素方差分析。

  10. 计算方差分析的临界值fa

  11. 获取方差分析结果中的F值。

  12. 根据p值和F值的大小判断不同治疗方法对血肿进展模式的影响。

  13. 打印出影响显著的治疗方法的相关信息。

  14. 打印出不同治疗方法对血肿进展模式的影响大小的排序结果。

  15. 将血肿指标和水肿指标转换为double类型,保存在变量x0y0中。

  16. 计算血肿指标和水肿指标的余弦相似度,保存在变量theta中。

  17. 打印出血肿指标和水肿指标的相关度。

第三题:出血性脑卒中患者预后预测及关键因素探索。

a)问题

  • 请根据前100个患者(sub001至sub100)个人史、疾病史、发病相关(“表1”字段E至W)及首次影像结果(表2,表3中相关字段)构建预测模型,预测患者(sub001至sub160)90天mRS评分。
  • 注:该问只可纳入患者首次影像检查信息。
  • 结果填写规范:记录预测mRS结果,0-6,有序等级变量。填写位置“表4”I字段(预测mRS(基于首次影像))。

具体代码实现思路步骤:

  1. 使用mapminmax函数对输入数据A进行归一化处理,将归一化后的结果保存在变量In中,并保存归一化的参数在ps_in中。

  2. 将输出数据Y转置为Out

  3. 将数据分为训练集和测试集。将In的前100列作为训练集的输入,将Out的前100列作为训练集的输出。将In的101-130列作为测试集1的输入,将Out的101-130列作为测试集1的输出。将In的131-160列作为测试集2的输入,将Out的131-160列作为测试集2的输出。

  4. 创建一个BP神经网络。设置网络的结构为两个隐藏层,第一个隐藏层的神经元数量为输入数据的一半,第二个隐藏层的神经元数量为输入数据的四分之一。激活函数使用双曲正切函数。

  5. 设置训练参数,包括最大迭代次数、目标误差、最小梯度、学习速率和最大确认失败次数。

  6. 使用训练集数据训练网络。

  7. 对训练集、测试集1和测试集2进行仿真测试,得到预测结果。将预测结果取整,保存在变量t_simt_sim1t_sim2中。

  8. 使用plotconfusion函数绘制混淆矩阵。分别绘制训练集、测试集1和测试集2的混淆矩阵图。混淆矩阵用于评估模型的分类性能。

b)问题

  • 根据前100个患者(sub001至sub100)所有已知临床、治疗(表1字段E到W)、表2及表3的影像(首次+随访)结果,预测所有含随访影像检查的患者(sub001至sub100,sub131至sub160)90天mRS评分。
  • 结果填写规范:记录预测mRS结果,0-6,有序等级变量。填写位置“表4”J字段(预测mRS)。

具体代码实现思路步骤:

  1. 使用mapminmax函数将输入数据B进行归一化处理,使用之前训练网络时得到的归一化参数ps_in,将归一化后的结果保存在变量Xyuce中。

  2. 对归一化后的数据Xyuce进行仿真测试,得到预测结果,保存在变量t_sim3中。

  3. 将预测结果取整,保存在变量T_sim3中。

  4. 创建空字符串矩阵result3,用于保存最终的预测结果。

  5. 循环遍历Num中的每个值,对于每个值,找出与Num中的值相等的索引,保存在变量a中。

  6. 循环遍历索引a,对于每个索引,将对应的预测结果保存在result3中的对应位置。

  7. result3转换为字符串类型。

  8. 将缺失值的元素替换为空字符串。

  9. 创建空矩阵z,用于保存随访次数的字符串。

  10. 循环遍历result3的列数,对于每一列,将对应的字符串保存在z中。

  11. 将患者编号、首次检测结果和随访次数的字符串合并成矩阵result3

c)问题

  • 请分析出血性脑卒中患者的预后(90天mRS)和个人史、疾病史、治疗方法及影像特征(包括血肿/水肿体积、血肿/水肿位置、信号强度特征、形状特征)等关联关系,为临床相关决策提出建议。

具体代码实现思路步骤:

  1. 将数据表中第2行到最后一行、第4列到最后一列的数据转换为double类型,并保存在变量X中。

  2. 创建空矩阵P,用于保存相关性矩阵。

  3. 使用嵌套循环遍历X的每一列和每一列,计算对应列的向量之间的余弦相似度,并将结果保存在相关性矩阵P的对应位置。

  4. 绘制热图,将相关性矩阵P作为数据输入,设置颜色条可见,调整图的位置、字体大小和单元格标签格式。

  5. 将变量Z与相关性矩阵P合并成矩阵resultp,用于自行分析相关性结果。

  6. 打印出预测结果和相关性结果的提示信息。

完整源码+数据下载

基于Matlab求解2023年华为杯E题完整代码文件(源码+数据).rar:https://download.csdn.net/download/m0_62143653/88376174

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

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

相关文章

【yolox训练过程中遇到的问题集合】

这里写目录标题 深度学习遇到的一系列bugVScode无法激活conda1.vscode加载web 视图报错2.CUDA out of memory3.voc2007数据集中的txt文件4.object has no attribute ‘cache‘5.KeyError:model6.No module named loguru7.Python AttributeError: module ‘distutils‘ has no a…

TensorFlow入门(五、指定GPU运算)

一般情况下,下载的TensorFlow版本如果是GPU版本,在运行过程中TensorFlow能自动检测。如果检测到GPU,TensorFlow会默认利用找到的第一个GPU来执行操作。如果机器上有超过一个可用的GPU,除第一个之外的其他GPU默认是不参与计算的。如果想让TensorFlow使用这些GPU执行操作,需要将运…

R语言学习笔记

R语言学习笔记 一.准备环境二.认识控制台三.R包四.数据结构1.向量Vector1.1创建向量1.2访问向量中的数据1.3向量的循环补齐 2.矩阵matrix2.1创建矩阵2.2访问矩阵中的数据 3数组Array3.1创建数组3.2访问数组中的数据 4.数据框Dataframe4.1创建数据框4.2访问数据框中的数据 5因子…

大数据Flink(八十六):DML:Group 聚合和Over 聚合

文章目录 DML:Group 聚合和Over 聚合 一、DML:Group 聚合

【Git】Deepin提示git remote: HTTP Basic: Access denied 错误解决办法

git remote: HTTP Basic: Access denied 错误解决办法 1.提交代码的时候提示2. 原因3.解决方案 1.提交代码的时候提示 git remote: HTTP Basic: Access denied 错误解决办法 2. 原因 本地git配置的用户名、密码与gitlabs上注册的用户名、密码不一致。 3.解决方案 如果账号…

数据结构 - 泛型

目录 前言 1. 什么是泛型? 2. 为什么需要泛型? 引入泛型之前 引入泛型之后 3.泛型类 4.泛型的界限 1.上下界 2.通配符 前言 今天给大家介绍一下泛型的使用 1. 什么是泛型? 一般的类和方法,只能使用具体的类型: 要么是基本类型,要么是自定义…

Java高级应用——异常处理

文章目录 异常处理概念Java异常体系Error 和 Exception编译时异常和运行时异常Java异常处理的方式 异常处理 概念 异常处理是在程序执行过程中遇到错误或异常情况时的一种机制,它允许程序在错误发生时进行适当的处理,而不会导致程序崩溃或产生不可预测…

【办公自动化】用Python将PDF文件转存为图片(文末送书)

🤵‍♂️ 个人主页:艾派森的个人主页 ✍🏻作者简介:Python学习者 🐋 希望大家多多支持,我们一起进步!😄 如果文章对你有帮助的话, 欢迎评论 💬点赞&#x1f4…

【嵌入式】使用嵌入式芯片唯一ID进行程序加密实现

目录 一 背景说明 二 原理介绍 三 设计实现 四 参考资料 一 背景说明 项目程序需要进行加密处理。 考虑利用嵌入式芯片的唯一UID,结合Flash读写来实现。 加密后的程序,可以使得从芯片Flash中读取出来的文件(一般为HEX格式)不能…

rsync+inotify实时同步数据

一、相关简介 1、rsync(remote synchronize) rsync是 Liunx/Unix 下的一个远程数据同步工具,它可通过 LAN/WAN 快速同步多台主机间的文件和目录。   Linux 之间同步文件一般有两种方式,分别是 rsync 与 scp ,scp 相…

前端性能优化汇总

1.减少HTTP请求次数和请求的大小 (三大类) 文件的合并和压缩:(1)(6) 延迟加载:(3)(4) 用新的文件格式代替传统文件格式:&a…

基于LQR算法的一阶倒立摆控制

1. 一阶倒立摆建模 2. 数学模型 倒立摆的受力分析网上有很多,这里就不再叙述。直接放线性化后的方程: F (Mm)x″-mLφ″ (ImL)φ″ mLx″ mgLφ(F为外力,x为物块位移,M,m为物块和摆杆的质量,…

抽象轻松java

嗨嗨嗨! 没想到吧,出现了抽象轻松第4种语言系列(我也没想到) 简单的java程序,看完就懂的简单逻辑——购物车系统 购物车,首先要有商品吧,现实中的商品有什么属性? 名字&#xff0…

CSS详细基础(一)选择器基础

本帖开始,我们来介绍CSS——即,层叠样式表~ 层叠样式表是一种用来表现HTML(标准通用标记语言的一个应用)或XML(标准通用标记语言的一个子集)等文件样式的计算机语言。简单的说,层叠就是对一个元…

PostgreSQL 查询某个属性相同内容出现的次数

查询某个数据库表属性 name 相同内容出现出现的次数,并按次数从大到小排序 SELECT name, COUNT(*) AS count FROM your_table GROUP BY name ORDER BY count DESC;示例 select project_id, COUNT(*) AS count from app_ads_positions group by project_id order b…

认证-authentication 和授权-authorization

就好比你可以刷卡进去xxx大厦(认证是本公司职员),但无法刷卡进入金融部门,或 实验部门(因为没有授权)

vite跨域proxy设置与开发、生产环境的接口配置,接口在生产环境下,还能使用proxy代理地址吗

文章目录 vite的proxy开发环境设置如果后端没有提供可以替换的/mis等可替换的后缀的处理办法接口如何区分.env.development开发和.env.production生产环境接口在生产环境下,还能使用proxy代理地址吗? vite的proxy开发环境设置 环境: vite 4…

玩转Mysql系列 - 第22篇:mysql索引原理详解

这是Mysql系列第22篇。 背景 使用mysql最多的就是查询,我们迫切的希望mysql能查询的更快一些,我们经常用到的查询有: 按照id查询唯一一条记录 按照某些个字段查询对应的记录 查找某个范围的所有记录(between and) …

忽视日志吃大亏,手把手教你玩转 SpringBoot 日志

一、日志重要吗 程序中的日志重要吗? 在回答这个问题前,笔者先说个事例: ❝ 笔者印象尤深的就是去年某个同事,收到了客户反馈的紧急bug。尽管申请到了日志文件,但因为很多关键步骤没有打印日志,导致排查进…

win10 使用cmake + mingw编译LAPACK

参考官网的内容: 适用于视窗的 LAPACK (utk.edu) 第一步下载好源码包: 配置好mingw的路径添加到环境变量中 gcc --version 出现这些就行了. 还有就是吧mingw中的mingw-make.exe重命名为make.exe 下载安装cmake 然后打开 1是源码路径,路径中一定要有CMakeLists.txt如果没…