基于Matlab GUI的DWT音频数字水印

基于Matlab GUI的DWT音频数字水印

随着互联网的快速发展,大量的数字媒体文件被广泛传播和分享。然而,数字媒体文件的易复制性和易篡改性已成为数字版权管理的一个重要问题。为了保护数字版权,数字水印技术应运而生。数字水印技术是一种嵌入在数字媒体中的不可见的信息,用于保护版权和验证身份。本文基于Matlab GUI技术,采用离散小波变换(DWT)实现音频数字水印。

一、DWT数字水印原理

数字水印分为空域水印和频域水印两种类型。其中,频域水印是将水印嵌入到频域上,保留音频的时间域特征,适用于有损压缩的音频。DWT作为一种常见的频域水印技术,可以在主频段之间嵌入水印并保持较好的鲁棒性。DWT数字水印的过程如下:

  1. 首先,采用DWT对音频信号进行分解,得到近似系数和细节系数,其中近似系数表示低频部分,细节系数表示高频部分。

  2. 在细节系数中选择幅值较大的一些系数进行嵌入,保留其原有的相位信息不变。

  3. 对得到的带有水印的细节系数以及未带水印的近似系数进行IDWT反变换,得到嵌入了水印的音频信号。水印提取的过程类似,只需将水印信息嵌入到音频信号中,并在需要的时候读取水印信息即可。

二、Matlab GUI界面设计

本文采用Matlab GUI技术实现音频数字水印的嵌入和提取功能,界面分为两个部分:水印嵌入和水印提取。具体如下:

  1. 水印嵌入界面

水印嵌入界面包括以下操作:

(1)选择载体音频文件:通过Matlab内置的文件浏览器,选择要嵌入水印的音频文件。

(2)选择水印文件:同样

基于MATLAB GUI实现DWT音频数字水印 这样,就可以得到多个尺度的近似和细节系数,其中低频近似系数包含了信号的主要信息,而高频细节系数则含有信号的细节和高频部分。在数字水印中,我们通常使用DWT算法来提取信号的低频近似系数,并在这些系数上嵌入水印信息。实验结果显示,嵌入水印后的音频文件和提取出来的数字水印都符合我们的预期,证明了我们实现的DWT音频数字水印系统是有效的。这里我们使用的是LSB(最低有效位)算法,即将原始低频系数的最低比特位替换为水印信息的比特序列。(3)提取低频近似系数的最低比特位,即我们嵌入的水印信息。 阅读详情

相关推荐

基于MATLAB GUI的DWT音频数字水印

通过DWT变换,可以将音频信号分解为不同的子带,然后将水印嵌入到选定的子带中。在音频领域,DWT可以将音频信号分解为低频和高频子带,其中低频子带包含了音频信号的主要能量,而高频子带则包含了细节信息。嵌入操作将选择的水印嵌入到音频文件中,而提取操作将从音频文件中提取出水印并显示在界面上。我们将使用MATLAB的GUI设计工具来创建一个用户界面,方便用户选择音频文件和水印文件,并进行水印嵌入和提取操作。类似地,在选择水印文件按钮的回调函数中,我们可以选择要嵌入的水印文件,并将文件路径显示在文本框中。

CyberXZ的博客 125

使用 MATLAB GUI 实现 DWT 音频数字水印嵌入与提取

在音频数字水印中,我们将信息嵌入到音频信号中,并进行相关的嵌入和提取操作。本文将介绍如何使用 MATLAB 中的 GUI 建立一个实用的音频数字水印嵌入与提取系统,在其中使用基于 DWT 的数字水印算法实现音频数字水印的嵌入和提取。在数字水印中,我们通过对音频信号进行 DWT 变换,可以将信息嵌入到变换后的高频分量中,从而实现数字水印的嵌入和提取。在 MATLAB 中,我们可以使用 waverec2 函数将嵌入了数字水印的音频信号进行 DWT 变换和逆变换,从而实现音频数字水印的提取。

2301_79326510的博客 339

【语音隐写】DWT音频数字水印【含GUI Matlab源码 712期】

DWT音频数字水印 完整的代码,方可运行;可提供运行操作视频!适合小白!

订阅付费专栏Matlab(奶茶价版),可赠送奶茶价版付费专栏指定代码1份; 177

【Matlab语音隐写】DWT音频数字水印【含GUI源码 712期】

一、代码运行视频(哔哩哔哩) 【Matlab语音隐写】DWT音频数字水印【含GUI源码 712期】 二、matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1] 包子阳,余继周,杨杉.智能优化算法及其MATLAB实例(第2版)[M].电子工业出版社,2016. [2]张岩,吴水根.MATLAB优化算法源代码[M].清华大学出版社,2017. [3]刘海燕,乐新,熊曾刚,张武义.基于音频内容的DWT域脆弱音频水印算法[J].内蒙古师范大学学报(自然科学汉文版). 2016,45(05

订阅付费专栏Matlab(奶茶价版),可赠送奶茶价版付费专栏指定代码1份; 377

【Matlab语音隐写】DCT+DWT音频数字水印嵌入提取【含GUI源码 836期】

一、代码运行视频(哔哩哔哩) 【Matlab语音隐写】DCT+DWT音频数字水印嵌入提取【含GUI源码 836期】 二、matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1] 包子阳,余继周,杨杉.智能优化算法及其MATLAB实例(第2版)[M].电子工业出版社,2016. [2]张岩,吴水根.MATLAB优化算法源代码[M].清华大学出版社,2017. [3]刘海燕,乐新,熊曾刚,张武义.基于音频内容的DWT域脆弱音频水印算法[J].内蒙古师范大学学报(自然科学汉文版). 20

订阅付费专栏Matlab(奶茶价版),可赠送奶茶价版付费专栏指定代码1份; 329

【语音隐写】DWT音频数字水印(带语音播报)【含GUI Matlab源码 711期】

DWT音频数字水印(带语音播报) 完整的代码,方可运行;可提供运行操作视频!适合小白!

订阅付费专栏Matlab(奶茶价版),可赠送奶茶价版付费专栏指定代码1份; 210

【Matlab语音隐写】DWT音频信号数字水印嵌入提取【含GUI源码 1028期】

一、代码运行视频(哔哩哔哩) 【Matlab语音隐写】DWT音频信号数字水印嵌入提取【含GUI源码 1028期】 二、matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1]韩纪庆,张磊,郑铁然.语音信号处理(第3版)[M].清华大学出版社,2019. [2]柳若边.深度学习:语音识别技术实践[M].清华大学出版社,2019. [3]赵翠.基于离散小波变换的音频信号数字水印技术研究[J]. 广播与电视技术. 2019,46(01) ...

订阅付费专栏Matlab(奶茶价版),可赠送奶茶价版付费专栏指定代码1份; 245

【语音隐写】DWT音频信号数字水印嵌入提取【含GUI Matlab源码 1028期】

DWT音频信号数字水印嵌入提取 完整的代码,方可运行;可提供运行操作视频!适合小白!

订阅付费专栏Matlab(奶茶价版),可赠送奶茶价版付费专栏指定代码1份; 399

【语音隐写】DCT+DWT音频数字水印嵌入提取【含GUI Matlab源码 836期】

DCT+DWT音频数字水印嵌入提取 完整的代码,方可运行;可提供运行操作视频!适合小白!

订阅付费专栏Matlab(奶茶价版),可赠送奶茶价版付费专栏指定代码1份; 156

【语音隐写】基于DCT+DWT音频数字水印嵌入提取matlab源码含GUI

1 DCT算法:DCT变换的全称是离散余弦变换(Discrete Cosine Transform),离散余弦变换相当于一个长度大概是它两倍的离散傅里叶变换,这个离散傅里叶变换是对一个实偶函数进行的。通过数字信号处理的学习我们知道实函数的傅立叶变换获得的频谱大多是复数,而偶函数的傅立叶变换结果是实函数。以此为基础,使信号函数成为偶函数,去掉频谱函数的虚部,是余弦变换的特点之一。它可以将将一组光强数据转换成频率数据,以便得知强度变化的情形。

qq_59747472的博客 299

【Matlab语音隐写】DWT+SVD音频水印嵌入【含GUI源码 1409期】

一、代码运行视频(哔哩哔哩) 【Matlab语音隐写】DWT+SVD音频水印嵌入【含GUI源码 1409期】 二、matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1]韩纪庆,张磊,郑铁然.语音信号处理(第3版)[M].清华大学出版社,2019. [2]柳若边.深度学习:语音识别技术实践[M].清华大学出版社,2019. [3]赵翠.基于离散小波变换的音频信号数字水印技术研究[J]. 广播与电视技术. 2019,46(01) ...

订阅付费专栏Matlab(奶茶价版),可赠送奶茶价版付费专栏指定代码1份; 471

【语音隐写】SVD音频信号数字水印嵌入提取攻击【含GUI Matlab源码 2095期】

SVD音频信号数字水印嵌入提取攻击 完整的代码,方可运行;可提供运行操作视频!适合小白!

订阅付费专栏Matlab(奶茶价版),可赠送奶茶价版付费专栏指定代码1份; 141

MATLAB GUI中的音频信号数字水印嵌入与提取

此外,为了完整地实现音频水印的嵌入和提取,您可能还需要了解更多关于DWT算法、音频处理和图像处理的知识。c. 加载音频和水印数据:使用MATLAB的音频处理工具箱和图像处理工具箱,我们将加载所选的音频文件和水印图像。e. 嵌入水印:将水印信息嵌入音频信号的频域表示中,可以使用一些算法,如在频域中选择特定频率的系数并进行修改。如有任何疑问,请随时提问。e. 显示提取的水印图像:根据提取的水印信息,我们可以恢复原始的水印图像。f. 保存嵌入水印后的音频:将嵌入了水印的音频信号保存到指定的文件中。

m0_47037246的博客 169

基于MATLAB GUI的音频数字水印嵌入和提取

在本文中,我们将使用MATLAB GUI结合离散余弦变换(DCT)和离散小波变换(DWT)的方法,实现音频数字水印的嵌入和提取。通过加载音频文件、设置水印信息、执行嵌入和提取操作,我们可以在音频信号中嵌入和提取数字水印。数字水印技术的基本原理是在原始媒体中嵌入一些不可察觉的信息,这些信息可以是文本、图像或其他形式的数据。在我们的例子中,我们将使用一段音频作为载体,将数字水印嵌入到音频信号中,并能够准确地提取出水印信息。请根据您的需求和具体实现细节,使用适当的参数和函数来完成DCT和DWT变换。

CyberOI的博客 113

滑模控制实战:用Python从零实现SMC算法(附完整代码)

本文通过Python实战,从零详解滑模控制(SMC)算法的核心原理与代码实现。文章聚焦于一阶系统,使用NumPy和Matplotlib逐步构建控制器,并针对SMC固有的抖振问题,详细讲解了边界层法的原理与实现,提供了完整的代码和参数调优指南,帮助读者直观理解并掌握这一鲁棒性极强的非线性控制方法。

weixin_29285605的博客 467

西门子CPU与汇川伺服通信与控制

第三方驱动器的配置内容和西门子的配置内容基本一致,基本上会一种即可知道其他品牌的配置默认报文,需要激活硬限位才能收到限位信号默认报文,原点信号不能实时输出到PLC;自定义报文,需要伺服端设置DIN点位。

大小曲奇的博客 1万+

百元DIY手机荧光计:低成本荧光检测平台搭建与实战

荧光检测是一种基于物质受特定波长光激发后发射更长波长荧光的分析技术,其核心原理在于光与物质的相互作用。通过选择性激发与检测,该技术能实现对痕量物质的高灵敏度、高特异性定量分析,在生物医学、环境监测和食品安全等领域具有重要价值。传统荧光分光光度计虽精度高,但成本昂贵、体积庞大且操作复杂,限制了其在现场快检和普及教育中的应用。本文聚焦于如何利用智能手机的高性能摄像头和处理器,结合低成本光学滤光片和LED光源,构建一个便携、经济的DIY荧光检测平台。该方案通过简化光路设计,采用带通滤光片进行波长选择,并利用图像处

weixin_34194829的博客 308

程序员的自我修养

一个好的程序员的自我修养需要从不同角度出发,工作能力是一个方面,对自身的定位和了解也是一个方面,程序员的工作能力修养包括需求理解、功能设计、沟通确认、代码规范、成果验证、代码重构优化等,通过自我剖析来对自身进行定位并了解自身的优缺点,如去除劣根性、端正意识形态与态度、提升自己的核心竞争力等。 自我剖析 一个成功的人,必须要先了解自己,只有了解自己是什么样的人,了解自身有哪些优缺点,了解自己更合适做什么工作,知道自己做什么才能发挥出自身的优势,这样才能使自己在工作中发光发热,在职业生涯的道路上走的更远。

数通畅联 1681

(10)Proteus 8.9上的STM32仿真系列(HAL)---freertos

实验设计:通过cubemxide生成freertos工程,然后创建一个 pc13 led灯间隔200ms闪烁的任务。非常遗憾的是proteus8.9仿真失败,实物上没有问题,但还是把流程过一遍。 一、原理图 实物是淘宝上stm32f103 c8t6的核心板,proteus上没有这个芯片,这里图上大概表示一下,用的是核心板自带的pc13引脚的led灯。 二、cubemxide配置 1.RCC如之前工程一样配置 2、配置SYS timebase Source不要使用systick,自己选择一个定时器,我这

qq_35442550的博客 7346

Android 桌面小组件 AppWidgetProvider

桌面小组件,绝对是小程序中的小程序,说白了就是任何复杂一丁点的操作都适合做成桌面小组件。所以这里采用的演示的例子,就只有一个白色圆角背景,外加一个文本框,显示文字。小组件的教程网上一搜一大堆,所以我这里主要就是介绍一些坑的地方,跟大致处理流程,具体细节还得看其他大神的骚操作。

qq_33601179的博客 6584

[Python从零到壹] 十三.机器学习之聚类算法四万字总结全网首发(K-Means、BIRCH、树状聚类、MeanShift)

欢迎大家来到“Python从零到壹”,在这里我将分享约200篇Python系列文章,带大家一起去学习和玩耍,看看Python这个有趣的世界。所有文章都将结合案例、代码和作者的经验讲解,真心想把自己近十年的编程经验分享给大家,希望对您有所帮助,文章中不足之处也请海涵。Python系列整体框架包括基础语法10篇、网络爬虫30篇、可视化分析10篇、机器学习20篇、大数据分析20篇、图像识别30篇、人工智能40篇、Python安全20篇、其他技巧10篇。您的关注、点赞和转发就是对秀璋最大的支持,知识无价人有情,希望

杨秀璋的专栏 2万+

华为OD干了两个月,还是跑了

​本人工作了快13年,base南京。2024年2月份由于公司业务变动第一次拿到了公司发的大礼包,同时也面临着失业的问题,我对自己的技术还是很有信心的,但是,找了大概有一个多月时间,发现心意的工作的确不太好找,当然收到挺多家offer,就是薪资不太满意,外包也一直不想去,不过说实话外包给的薪资普遍要比自研的单位要高一些,最后为了钱还是进华为(既然选择外包那就选择好一些的吧),毕竟中年老男人工作不能断太久。

啊渊的专栏 1万+

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

上一篇: 基于Matlab蜻蜓算法的多目标优化问题求解
下一篇: 基于MATLAB遗传算法的光伏实验室小车栅格地图路径规划
普通网友
博客等级 码龄4年 1009粉丝 1545原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值