Matlab数学建模算法之小波神经网络详解

🔗 运行环境:Matlab

🚩 撰写作者:左手の明天

🥇 精选专栏:《python》

🔥  推荐专栏:《算法研究》

🔐#### 防伪水印——左手の明天 ####🔐

💗 大家好🤗🤗🤗,我是左手の明天!好久不见💗

💗今天分享matlab数学建模算法——小波分析💗

📆  最近更新:2023 年 12 月 05 日,左手の明天的第 302 篇原创博客

📚 更新于专栏:matlab

🔐#### 防伪水印——左手の明天 ####🔐


一、小波神经网络

小波神经网络(Wavelet Neural Network,简称WNN)是基于小波变换理论构造而成,其原理与反向传播神经网络(BPNN)较为接近。最主要的特征是它的隐含层神经元激活函数为小波基函数,这一特性使其充分利用了小波变换的局部化性质和神经网络的大规模数据并行处理、自学习能力,因而具有较强的逼近能力和较快的收敛速度。

小波神经网络的结构图如下图所示:


二、小波分析

小波分析是一种强大的数学工具,它在信号处理、图像处理、量子力学等领域有着广泛的应用。小波变换是一种将信号分解成不同尺度的成分,以便更好地理解信号的特性的方法。

1、小波变换的定义

小波变换是一种信号分析方法,它可以将信号分解成不同尺度的成分。小波变换的基本思想是将信号投影到一组小波函数上,这组小波函数构成了小波基。小波基的特性是它们在时间和频率上都具有良好的局部性。这意味着小波基可以很好地捕捉信号中的局部特征,无论在高频还是低频部分。

小波变换的定义基于傅里叶变换和伸缩平移运算。它通过将信号与一组小波函数进行内积运算,得到信号在不同尺度下的投影。这些投影可以理解为信号在不同尺度下的细节和概貌。

2、小波变换的性质

小波变换具有一些重要的性质,包括:

(1) 适应性和多分辨率特性:小波变换可以适应不同尺度的信号,并能够同时处理高频和低频部分。这使得小波变换具有多分辨率特性,可以更好地分析信号的细节和概貌。

(2) 方向性和时间-频率局部性:小波基具有方向性和时间-频率局部性,这使得小波变换在处理信号时具有很好的局部性。它可以捕捉信号中的突变和边缘等局部特征,并提供关于这些特征的更多信息。

(3) 冗余性和压缩性:小波变换具有冗余性,这意味着它可以将信号分解成多个层次,每个层次都包含了信号的不同方面的信息。这种冗余性使得小波变换具有很好的压缩性,可以将信号压缩成更小的数据量。

3、小波变换的实现

小波变换的实现通常分为两步:首先是选择合适的小波基,然后是对信号进行小波分解和重构。选择合适的小波基需要考虑信号的特性和应用场景。常用的有小波基包括Daubechies小波基、Haar小波基、Morlet小波基等。

小波分解是将信号分解成多个层次的过程,每个层次都包含了信号的不同方面的信息。常用的有小波分解算法包括二进小波分解、多尺度小波分解等。重构是小波变换的逆过程,它可以根据小波分解的结果将信号恢复成原始形式。

4、小波变换的数学模型

小波变换的数学模型可以通过连续小波变换和离散小波变换表示。连续小波变换是对连续信号进行小波变换,可以用积分来表示。离散小波变换是对离散信号进行小波变换,可以用矩阵运算表示。

4.1 连续小波变换

连续小波变换的数学模型可以表示为:

W(a, b) = ∫f(t)ψ*[ (t-b)/a ] dt

其中,W(a, b)表示小波系数,f(t)表示原始信号,ψ(t)表示小波基函数,a和b分别表示尺度参数和平移参数。

4.2 离散小波变换

离散小波变换的数学模型可以表示为:

W(n, k) = ∑f(m)ψ*[ (m-k)/2^n ] 

其中,W(n, k)表示小波系数,f(m)表示原始信号,ψ(m)表示离散小波基函数,n表示尺度参数,k表示平移参数。

5、matlab实现小波变换

在MATLAB中进行小波分析的步骤如下:

  1. 准备数据:将待分析的信号数据准备好,可以是一个向量或一个矩阵。
  2. 选择小波类型:根据需要选择合适的小波类型,例如Daubechies小波、Haar小波、Morlet小波等。
  3. 进行小波分解:使用MATLAB中的小波分析函数,例如dwt()wavedec2(),对信号数据进行小波分解。这将会将信号分解成多个层次,每个层次都包含了信号的不同方面的信息。
  4. 分析小波系数:对分解后得到的小波系数进行分析,例如可以观察近似系数和细节系数的变化情况,从而得到信号在不同层次上的特征。
  5. 重构信号:如果需要,可以使用idwt()waverec2()函数对信号进行重构,得到原始信号。
  6. 计算相关统计量和特征量:根据需要,可以计算相关统计量和特征量,例如均方差、峰值等,以进一步分析信号的特征。

需要注意的是,在进行小波分析前,需要了解小波分析的基本原理和性质,以便更好地选择合适的小波类型和分解方式,以及正确地解释分析结果。

在MATLAB中进行小波分析,我们首先需要了解几个关键函数:

  1. dwt(): 这是进行一维小波单层分解的函数,它采用小波名称作为参数,返回近似系数和细节系数。
  2. wavdec(): 这是进行一维小波多层分解的函数,它可以将信号分解成多个层次。
  3. idwt(): 这是进行小波重构的函数,它采用近似系数和细节系数作为参数,返回重构后的信号。

下面是一个简单的例子,说明如何在MATLAB中使用小波分析:

% 创建信号
x = randn(1,100);
% 选择小波类型
wname = 'db1';
% 进行一维小波分解
[cA,cD] = dwt(x,wname);
% 进行小波重构
X = idwt(cA,cD,wname);

在这个例子中,首先创建了一个随机信号x。然后,选择了Daubechies小波('db1')进行小波分解。分解后,我们得到了近似系数cA和细节系数cD。最后,我们使用idwt()函数进行了小波重构,得到了重构后的信号X

注意:在进行小波重构时,必须使用与分解时相同的小波类型。

二维小波分析在图像处理中特别有用。在MATLAB中,你可以使用wavedec2()函数进行二维小波分解,使用waverec2()函数进行二维小波重构。二维小波分解和重构通常用于图像压缩、去噪等方面。


三、权值训练

小波神经网络(Wavelet Neural Network,简称WNN)是一种结合了小波变换和神经网络的复合体。它的权值训练一般通过以下步骤进行:

  1. 网络初始化:首先,对小波神经网络进行初始化,包括确定网络的结构、小波基函数的类型和参数、权值和阈值等。
  2. 输入数据学习:将已知的输入数据通过小波变换进行分解和重构,通过调整权值和阈值使得网络的输出尽可能接近目标输出。
  3. 误差反向传播:在每个训练周期结束后,计算网络输出和目标输出的误差,并将误差反向传播到网络中,根据误差调整权值和阈值。
  4. 权值更新:根据反向传播的误差,对网络的权值进行更新。一般采用梯度下降法或其他优化算法来更新权值。
  5. 重复学习:重复步骤2-4,直到网络的输出与目标输出之间的误差满足要求,或者达到预设的学习次数。

小波神经网络的权值训练过程与反向传播神经网络类似,都是通过不断调整权值和阈值来最小化网络输出与目标输出之间的误差。但是,小波神经网络的小波基函数具有更好的局部化性质和时频分析能力,因此可以更好地处理具有复杂特征的数据。


四、特征分析

小波神经网络利用小波基函数的性质进行特征分析主要表现在以下几个方面:

  1. 多尺度分析:小波神经网络可以通过多尺度分析,在不同尺度下提取信号的特征。小波基函数可以将信号分解成多个尺度的成分,每个尺度下的成分都包含了信号的不同频率信息和细节信息。
  2. 局部化分析:小波基函数具有局部化性质,可以捕捉信号的局部特征。通过小波神经网络对信号进行分解和重构,可以更好地提取信号中的局部特征,对于信号分类、识别等任务有很大的帮助。
  3. 方向选择性:小波基函数在时频域上具有方向选择性,可以更好地适应信号的变化。通过小波神经网络对信号进行分解和重构,可以更好地适应信号的变化,提高信号处理的准确性和鲁棒性。
  4. 非线性映射:小波基函数具有非线性映射的能力,可以将输入信号映射到高维空间中。通过小波神经网络对输入信号进行学习和映射,可以更好地表示输入信号的特征,提高分类和识别的准确性。

总之,小波神经网络利用小波基函数的性质进行特征分析,可以更好地提取信号的特征,提高信号处理的准确性和鲁棒性。


五、小波基函数

小波基函数是小波分析的核心组成部分,选择合适的小波基函数对于信号处理、图像处理、数值分析等领域的应用非常重要。在选择小波基函数时,需要考虑以下几个因素:

5.1 支撑长度(Support Length)

小波基函数的支撑长度是指在一定尺度下,小波基函数的非零部分所覆盖的信号长度。一般来说,支撑长度越长,小波基函数就越能捕捉到信号中的细节和特征,但同时也会增加计算的复杂性和内存消耗。因此,在选择小波基函数时,需要根据应用场景和硬件资源进行权衡。

常见的支撑长度有小波基函数的名称和对应的支撑长度(在MATLAB环境下):

  • Daubechies 2 (db2): 3
  • Daubechies 3 (db3): 4
  • Daubechies 4 (db4): 5
  • Daubechies 5 (db5): 6
  • Daubechies 6 (db6): 7
  • Daubechies 8 (db8): 9
  • Daubechies 12 (db12): 13
  • Daubechies 14 (db14): 15

5.2 紧支撑(Tight Support)

紧支撑是指小波基函数在时间和频率域中的局部化性质,即在小波变换的过程中,只有靠近输入信号的位置才会产生非零系数。选择具有紧支撑的小波基函数可以减少计算量和内存消耗,同时提高信号处理的效率和准确性。

在选择小波基函数时,需要考虑其紧支撑性质。一般来说,Daubechies系列小波基函数具有较好的紧支撑性质。此外,还可以根据应用场景和问题特点来选择具有合适支撑长度和紧支撑的小波基函数。例如,当处理信号的频率成分较为复杂时,可以选择支撑长度较长的小波基函数;当处理信号的时域特征较为重要时,可以选择具有较好紧支撑性质的小波基函数。

总之,选择合适的小波基函数需要考虑支撑长度和紧支撑等因素,同时结合具体的应用场景和问题特点进行选择。在MATLAB环境下,可以使用wfilters函数来查看不同小波基函数的性质和特点,以便选择合适的小波基函数进行应用。


六、小波神经网络实现过程

  • 步骤1:数据准备

首先,我们需要准备用于训练和测试的数据集。数据集应包含输入样本和对应的目标输出。确保数据集经过预处理和归一化处理,便于网络的训练和学习。

  • 步骤2:网络建立

使用MATLAB的神经网络工具箱,我们可以方便地建立小波神经网络。首先,定义网络的拓扑结构和参数配置,包括输入层、隐藏层和输出层的节点数,以及学习率、最大迭代次数等参数。

  • 步骤3:训练网络

使用训练数据集对小波神经网络进行训练。在MATLAB中,可以使用train函数来训练神经网络。通过设置训练选项,可以控制训练过程的细节和收敛性。

  • 步骤4:测试网络

使用测试数据集对训练好的小波神经网络进行测试,以评估其性能和泛化能力。在MATLAB中,可以使用sim函数来模拟网络的响应。通过比较网络的输出和目标输出,可以计算误差和评估网络的性能。

  • 步骤5:应用网络

使用训练好的小波神经网络对新的输入数据进行威胁评估。将新的输入数据输入到网络的输入层,通过隐藏层和输出层的计算,得到威胁评估结果。

以上是一个简单的小波神经网络实现过程。在实际应用中,可能需要根据具体情况进行适当的调整和优化。同时,也可以考虑使用其他工具或框架来实现小波神经网络,如MATLAB的Deep Learning Toolbox、Python的PyWavelets和Scikit-Learn等。


七、MATLAB实现的小波神经网络

以下是一个使用MATLAB实现的小波神经网络代码示例:

% 加载数据集
load iris_dataset% 定义小波神经网络结构
net = newff(input, target, [10 1], {'logsig', 'purelin'}, 'trainlm');% 设置训练参数
net.trainParam.epochs = 100;
net.trainParam.goal = 1e-5;
net.trainParam.show = 10;
net.trainParam.lr = 0.01;
net.trainParam.mc = 0.9;% 训练网络
[net, tr] = train(net, input, target);% 测试网络性能
output = net(input);
perf = perform(net, target, output);

在上述代码中,首先加载了鸢尾花数据集,并定义了一个具有10个隐层节点和1个输出节点的小波神经网络。使用了logsig激活函数作为隐层激活函数,并使用purelin激活函数作为输出层激活函数。然后,设置了网络的训练参数,包括最大迭代次数、目标误差、显示间隔、学习率和动量等。最后,使用train函数训练了网络,并使用perform函数评估了网络的性能。

function main()
clc;clear all;close all;
%用Mexihat函数作为样本输入和输出
x=0:0.03:3; %样本输入值
c=2/(sqrt(3).*pi.^(1/4));
d=1/sqrt(2);
u=x/2-1;
targ=d.*c.*exp(-u.^2/2).*(1-u.^2);  % 目标函数的样本输出值
eta=0.02;aerfa=0.735; %赋予网络学习速率和动量因子初始值
%初始化输出层和隐层的连接权wjh和隐层和输出层的连接权.
%假设小波函数节点数为H,样本数为P,输出节点数为J,输入节点数为I.
H=15;P=2;I=length(x);J=length(targ);
b=rand(H,1);a=rand(H,1); %初始化小波参数
whi=rand(I,H);wjh=rand(H,J); %初始化权系数;
b1=rand(H,1);b2=rand(J,1);%阈值初始化;
p=0;
Err_NetOut=[];%保存的误差;
flag=1;count=0;
while flag>0
flag=0;
count=count+1;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
xhp1=0;
for h=1:Hfor i=1:Ixhp1=xhp1+whi(i,h)*x(i);end
ixhp(h)=xhp1+b1(h);
xhp1=0;
end
for h=1:H
oxhp(h)=fai((ixhp(h)-b(h))/a(h));
end
ixjp1=0;
for j=1:Jfor h=1:Hixjp1=ixjp1+wjh(h,j)*oxhp(h);end
ixjp(j)=ixjp1+b2(j);
ixjp1=0;
end
for i=1:J
oxjp(i)=fnn(ixjp(i));
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
wuchayy=1/2*sumsqr(oxjp-targ);
Err_NetOut=[Err_NetOut wuchayy];%保存每次的误差;
%求解小波网络运用BP算法,各参数每次学习的调整量
for j=1:J
detaj(j)=-(oxjp(j)-targ(j))*oxjp(j)*(1-oxjp(j));
end
for j=1:Jfor h=1:Hdetawjh(h,j)=eta*detaj(j)*oxhp(h);end
end
detab2=eta*detaj;
sum=0;
for h=1:Hfor j=1:Jsum=detaj(j)*wjh(h,j)*diffai((ixhp(h)-b(h))/a(h))/a(h)+sum;end
detah(h)=sum;
sum=0;
end
for h=1:Hfor i=1:Idetawhi(i,h)=eta*detah(h)*x(i);end
end
detab1=eta*detah;
detab=-eta*detah;
for h=1:H
detaa(h)=-eta*detah(h)*((ixhp(h)-b(h))/a(h));
end
%引入动量因子aerfa,加快收敛速度和阻碍陷入局部极小值.
wjh=wjh+(1+aerfa)*detawjh;
whi=whi+(1+aerfa)*detawhi;
a=a+(1+aerfa)*detaa';
b=b+(1+aerfa)*detab';
b1=b1+(1+aerfa)*detab1';
b2=b2+(1+aerfa)*detab2';
%本算法采用的是样本逐个处理而不是数据批处理
p=p+1;
if p~=P
flag=flag+1;
else
if Err_NetOut(end)>0.008
flag=flag+1;
else
figure;
plot(Err_NetOut);
xlabel('网络学习的次数');ylabel('网络输出的误差');
title('网络学习误差曲线','fontsize',20,'color',[0 1 1],'fontname','隶书');
end
end
if count>6000
figure(1);
subplot(1,2,1)
plot(Err_NetOut,'color','b','linestyle','-','linewidth',2.2,...
'marker','^','markersize',3.5);
xlabel('网络学习的次数');ylabel('网络输出的误差');
title('误差曲线','fontsize',20,'color',[1 1 1],'fontname','隶书');
subplot(1,2,2)
handle1=plot(x,targ,'color','r','linestyle','--','linewidth',2.2,...
'marker','p','markersize',3.5);
hold on
handle1=plot(x,oxjp,'color','g','linestyle','-.','linewidth',2.2,...'marker','d','markersize',3.5);
xlabel('样本输入值');ylabel('样本目标值与网络输出值');
title('目标值与网络输出值比较','fontsize',20,'color',[1 1 1],'fontname','隶书');
legend('样本目标值','网络仿真值');
break;
end
end
function y3=diffai(x)  %子程序
y3=-1.75*sin(1.75*x).*exp(-x.^2/2)-cos(1.75*x).*exp(-x.^2/2).*x;
function yl=fai(x)  %子程序
yl=cos(1.75.*x).*exp(-x.^2/2);
function y2=fnn(x)  %子程序
y2=1/(1+exp(-x));

八、小波神经网络应用场景

小波神经网络在许多应用场景上表现较好,以下是其中几个例子:

  1. 信号处理:小波神经网络可以用于信号压缩、分类、识别与诊断,去污等。在医学成像方面,可以减少B超、CT、核磁共振成像的时间,提高解析度等。
  2. 图像处理:小波神经网络在图像处理方面也有广泛的应用,包括图像压缩、分类、识别、去噪等。
  3. 信号分析:小波神经网络可以用于边界的处理与滤波、时频分析、信噪分离与提取弱信号、求分形指数、信号的识别与诊断以及多尺度边缘侦测等。
  4. 工程技术:小波神经网络在工程技术等方面也有应用,包括电脑视觉、电脑图形学、曲线设计、湍流、远端宇宙的研究与生物医学方面。

此外,小波神经网络还可以应用于模式识别、非线性映射、优化设计等领域。总之,小波神经网络具有广泛的应用前景,可以在不同领域中发挥其优势。

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

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

相关文章

存储成本降71%,怪兽充电历史库迁移OceanBase

怪兽充电作为共享充电宝第一股,业务增长迅速,以至于业务架构不停地增加组件。在验证 OceanBase 可以简化架构并带来更大的业务价值后,首次尝试在历史库中使用 OceanBase 替代 MySQL,存储成本降低 71%。本文为怪兽充电运维架构部王…

Docker 入门

Docker 入门 基础 不同操作系统下其安装包、运行环境是都不相同的!如果是手动安装,必须手动解决安装包不同、环境不同的、配置不同的问题 而使用Docker,这些完全不用考虑。就是因为Docker会自动搜索并下载MySQL。注意:这里下载…

【C++】输入输出流 ⑥ ( cout 标准输出流对象 | cout 常用 api 简介 | cout.put(char c) 函数 )

文章目录 一、cout 标准输出流对象1、cout 标准输出流对象简介2、cout 常用 api 简介 二、cout.put(char c) 函数1、cout.put(char c) 函数 简介2、代码示例 - cout.put(char c) 函数 一、cout 标准输出流对象 1、cout 标准输出流对象简介 cout 是 标准输出流 对象 , 是 ostrea…

端口被占用 --- 解决方案

问题描述 加速服务启动失败,443端口被magentproc(1576)占用。请关掉占用443端口的程序或者尝试使用系统代理模式。 问题解决 按下 win R 打开 输入cmd 输入命令 netstat -ano | findstr 443 找到 0.0.0.0:443 对应的端口 (1576) 按下 ctrl shift esc, 打开任务管…

综述 2023-IEEE-TCBB:生物序列聚类方法比较

Wei, Ze-Gang, et al. "Comparison of methods for biological sequence clustering." IEEE/ACM Transactions on Computational Biology and Bioinformatics (2023). https://ieeexplore.ieee.org/document/10066180 被引次数:1;研究背景&am…

力扣题:数字与字符串间转换-12.13

力扣题-12.13 [力扣刷题攻略] Re:从零开始的力扣刷题生活 力扣题1:442. 数组中重复的数据 解题思想:直接相除即可 class Solution(object):def optimalDivision(self, nums):""":type nums: List[int]:rtype: str"&qu…

Transformer 简介

Transformer 是 Google 在 2017 年底发表的论文 Attention Is All You Need 中所提出的 seq2seq 模型。Transformer 模型的核心是 Self-Attention 机制,能够处理输入序列中的每个元素,并能计算其与序列中其他元素的交互关系的方法,从而能够更…

再见了Future,图解JDK21虚拟线程的结构化并发

Java为我们提供了许多启动线程和管理线程的方法。在本文中,我们将介绍一些在Java中进行并发编程的选项。我们将介绍结构化并发的概念,然后讨论Java 21中一组预览类——它使将任务拆分为子任务、收集结果并对其进行操作变得非常容易,而且不会不…

Unity中Shader黑白阀值后处理效果

文章目录 前言一、我们先来PS看一下黑白阀值的效果二、使用step(a,b)函数实现效果三、实现脚本控制黑白阀值1、在Shader属性面板定义控制阀值变量2、把step的a改为_Value3、在后处理脚本设置公共成员变量,并且设置范围为(0,1)4、在Graphics.B…

Cocos Creator:创建棋盘

Cocos Creator:创建棋盘 创建地图三部曲:1. 创建layout组件2. 创建预制体Prefab,做好精灵贴图:3. 创建脚本LayoutSprite.ts收尾工作: 创建地图三部曲: 1. 创建layout组件 使用layout进行布局,…

四十三、Redis基础

目录 一、认识NoSql 1、定义: 2、常见语法 3、与关系型数据库(SQL)的区别: 二、认识Redis 1、定义: 2、特征: 3、Key的结构: 三、安装Redis 四、Redis常见命令 1、数据结构介绍 2、…

关于DNS服务器地址总是127.0.0.1且无法解析域名地址

问题 笔者尝试nslookup解释域名时,出现服务器变成本地环回口地址,导致无法解析域名 C:\Users\Zsy>nslookup www.baidu.com 服务器: UnKnown Address: 127.0.0.1*** UnKnown 找不到 www.baidu.com: Server failed排查思路 尝试关闭虚拟网卡&#…

CSS的逻辑组合伪类

CSS 的逻辑组合伪类有 4 种,分别是::not()、:is()、:where()和:has()。 否定伪类:not() :not 伪类选择器用来匹配不符合一组选择器的元素。由于它的作用是防止特定的元素被选中,它也被称为反选伪类(negation pseudo-…

自动化测试框架 —— pytest框架入门篇

今天就给大家说一说pytest框架。 今天这篇文章呢,会从以下几个方面来介绍: 01、pytest框架介绍 pytest 是 python 的第三方单元测试框架,比自带 unittest 更简洁和高效,支持非常丰富的插件,同时兼容 unittest 框架。…

【C++】:AVL树

朋友们、伙计们,我们又见面了,本期来给大家解读一下有关多态的知识点,如果看完之后对你有一定的启发,那么请留下你的三连,祝大家心想事成! C 语 言 专 栏:C语言:从入门到精通 数据结…

用python 网络自动化统计交换机有多少端口UP

用python统计交换机有多少端口UP 用python统计交换机有多少端口UP,可以间接的反馈有多少个用户在线。我们使用上次的脚本将可达的网络设备ip统计到reachable_ip.txt中,这次我们使用reachable_ip.txt来登陆设备来统计多少端口是UP的 云配置 拓扑 交换机…

【Cisco Packet Tracer】VLAN通信 多臂/单臂路由/三层交换机

在进行本文的实验之前,请确保掌握以下内容: 【Cisco Packet Tracer】交换机 学习/更新/泛洪/VLAN实验 【Cisco Packet Tracer】路由器实验 静态路由/RIP/OSPF/BGP 【Cisco Packet Tracer】路由器 NAT实验 本文介绍VLAN间的通信方法, 包括…

FreeRTOS的任务优先级、Tick以及状态讲解(尊敬的嵌入式工程师,不妨进来喝杯茶)

任务优先级和Tick 在FreeRTOS中,任务的优先级和Tick是两个关键的概念,它们直接影响任务的调度和执行。 任务优先级 每个任务都被分配一个优先级,用于决定任务在系统中的调度顺序。 优先级是一个无符号整数,通常从0开始&#xff0…

Mysql- 流程函数-(If, CASE WHEN)的使用及练习

目录 4.1 If函数语法格式 4.2 CASE WHEN 条件表达式格式 4.3 update与 case when 4.4 练习题1 4.5 练习题2 4.6 练习题3-行转列 4.7 牛客练习题 4.8 LeetCode练习题 4.1 If函数语法格式 IF(expr1,expr2,expr3) 解释&#xff1a; 如果表达式expr1true(expr1 <>…

Xcode doesn’t support iOS 16.6

xocde版本低&#xff0c;手动放入16.6的依赖文件 https://gitee.com/qiu1993/iOSDeviceSupport/blob/master/iOS16/16.6.zip 路径 /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport