适应度函数

news2025/1/21 15:33:57

23个基准测试函数

  • 优化算法常用的适应度函数
  • 23个基准测试函数的图像
  • python版code
  • 将以上代码打包为exe

优化算法常用的适应度函数

在这里插入图片描述

23个基准测试函数的图像

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

python版code

将23个基准测试函数封装成python库,并进行实例化、调用绘图函数。下面代码只需根据提示打印,输入想要绘制的函数名称或all, 即可绘制相应基准测试函数,并将生成的静态图保存至当前文件夹中的fig文件夹、动态图保存至gif文件夹。

# -*- coding: UTF-8 -*-
"""
    @IDE    : PyCharm
    @project: 23个基准函数绘制
    @file   :plot_benchmark_functions.py
    @date   :2023-09-09 1:37
    @Author : 十@八九
    @email  : 
"""
import os
import numpy as np
from matplotlib import pyplot as plt
import matplotlib.animation as animation


class PlotFunction:
    def __int__(self):
        self.select_func = None
        return

    def F1(self, X):
        Results = np.sum(X ** 2)
        return Results

    def F2(self, X):
        Results = np.sum(np.abs(X)) + np.prod(np.abs(X))
        return Results

    def F3(self, X):
        dim = X.shape[0]
        Results = 0
        for i in range(dim):
            Results = Results + np.sum(X[0:i + 1]) ** 2

        return Results

    def F4(self, X):
        Results = np.max(np.abs(X))

        return Results

    def F5(self, X):
        dim = X.shape[0]
        Results = np.sum(100 * (X[1:dim] - (X[0:dim - 1] ** 2)) ** 2 + (X[0:dim - 1] - 1) ** 2)

        return Results

    def F6(self, X):
        Results = np.sum(np.abs(X + 0.5) ** 2)

        return Results

    def F7(self, X):
        dim = X.shape[0]
        Temp = np.arange(1, dim + 1, 1)
        Results = np.sum(Temp * (X ** 4)) + np.random.random()

        return Results

    def F8(self, X):
        Results = np.sum(-X * np.sin(np.sqrt(np.abs(X))))

        return Results

    def F9(self, X):
        dim = X.shape[0]
        Results = np.sum(X ** 2 - 10 * np.cos(2 * np.pi * X)) + 10 * dim

        return Results

    def F10(self, X):
        dim = X.shape[0]
        Results = -20 * np.exp(-0.2 * np.sqrt(np.sum(X ** 2) / dim)) - np.exp(
            np.sum(np.cos(2 * np.pi * X)) / dim) + 20 + np.exp(1)

        return Results

    def F11(self, X):
        dim = X.shape[0]
        Temp = np.arange(1, dim, 1)
        Results = np.sum(X ** 2) / 4000 - np.prod(np.cos(X / np.sqrt(Temp))) + 1

        return Results

    def Ufun(self, x, a, k, m):
        Results = k * ((x - a) ** m) * (x > a) + k * ((-x - a) ** m) * (x < -a)
        return Results

    def F12(self, X):
        dim = X.shape[0]
        Results = (np.pi / dim) * (10 * ((np.sin(np.pi * (1 + (X[0] + 1) / 4))) ** 2) + \
                                   np.sum(((X[0:dim - 1] + 1) / 4) ** 2) * (
                                           1 + 10 * ((np.sin(np.pi * (1 + X[1:dim] + 1) / 4)) ** 2)) + \
                                   ((X[dim - 1] + 1) / 4) ** 2) + np.sum(self.Ufun(X, 10, 100, 4))

        return Results

    def F13(self, X):
        dim = X.shape[0]
        Results = 0.1 * ((np.sin(3 * np.pi * X[0])) ** 2 + np.sum(
            (X[0:dim - 1] - 1) ** 2 * (1 + (np.sin(3 * np.pi * X[1:dim])) ** 2)) + \
                         ((X[dim - 1] - 1) ** 2) * (1 + (np.sin(2 * np.pi * X[dim - 1])) ** 2)) + np.sum(
            self.Ufun(X, 5, 100, 4))

        return Results

    def F14(self, X):
        aS = np.array(
            [[-32, -16, 0, 16, 32, -32, -16, 0, 16, 32, -32, -16, 0, 16, 32, -32, -16, 0, 16, 32, -32, -16, 0, 16, 32], \
             [-32, -32, -32, -32, -32, -16, -16, -16, -16, -16, 0, 0, 0, 0, 0, 16, 16, 16, 16, 16, 32, 32, 32, 32, 32]])
        bS = np.zeros(25)
        for i in range(25):
            bS[i] = np.sum((X - aS[:, i]) ** 6)
        Temp = np.arange(1, 26, 1)
        Results = (1 / 500 + np.sum(1 / (Temp + bS))) ** (-1)

        return Results

    def F15(self, X):
        aK = np.array([0.1957, 0.1947, 0.1735, 0.16, 0.0844, 0.0627, 0.0456, 0.0342, 0.0323, 0.0235, 0.0246])
        bK = np.array([0.25, 0.5, 1, 2, 4, 6, 8, 10, 12, 14, 16])
        bK = 1 / bK
        Results = np.sum((aK - ((X[0] * (bK ** 2 + X[1] * bK)) / (bK ** 2 + X[2] * bK + X[3]))) ** 2)

        return Results

    def F16(self, X):
        Results = 4 * (X[0] ** 2) - 2.1 * (X[0] ** 4) + (X[0] ** 6) / 3 + X[0] * X[1] - 4 * (X[1] ** 2) + 4 * (
                X[1] ** 4)
        return Results

    def F17(self, X):
        Results = (X[1] - (X[0] ** 2) * 5.1 / (4 * (np.pi ** 2)) + (5 / np.pi) * X[0] - 6) ** 2 + 10 * (
                1 - 1 / (8 * np.pi)) * np.cos(X[0]) + 10
        return Results

    def F18(self, X):
        Results = (1 + (X[0] + X[1] + 1) ** 2 * (
                19 - 14 * X[0] + 3 * (X[0] ** 2) - 14 * X[1] + 6 * X[0] * X[1] + 3 * X[1] ** 2)) * \
                  (30 + (2 * X[0] - 3 * X[1]) ** 2 * (
                          18 - 32 * X[0] + 12 * (X[0] ** 2) + 48 * X[1] - 36 * X[0] * X[1] + 27 * (X[1] ** 2)))
        return Results

    def F19(self, X):
        aH = np.array([[3, 10, 30], [0.1, 10, 35], [3, 10, 30], [0.1, 10, 35]])
        cH = np.array([1, 1.2, 3, 3.2])
        pH = np.array(
            [[0.3689, 0.117, 0.2673], [0.4699, 0.4387, 0.747], [0.1091, 0.8732, 0.5547], [0.03815, 0.5743, 0.8828]])
        Results = 0
        for i in range(4):
            Results = Results - cH[i] * np.exp(-(np.sum(aH[i, :] * ((X - pH[i, :])) ** 2)))
        return Results

    def F20(self, X):
        aH = np.array([[10, 3, 17, 3.5, 1.7, 8], [0.05, 10, 17, 0.1, 8, 14], [3, 3.5, 1.7, 10, 17, 8],
                       [17, 8, 0.05, 10, 0.1, 14]])
        cH = np.array([1, 1.2, 3, 3.2])
        pH = np.array(
            [[0.1312, 0.1696, 0.5569, 0.0124, 0.8283, 0.5886], [0.2329, 0.4135, 0.8307, 0.3736, 0.1004, 0.9991], \
             [0.2348, 0.1415, 0.3522, 0.2883, 0.3047, 0.6650], [0.4047, 0.8828, 0.8732, 0.5743, 0.1091, 0.0381]])
        Results = 0
        for i in range(4):
            Results = Results - cH[i] * np.exp(-(np.sum(aH[i, :] * ((X - pH[i, :])) ** 2)))
        return Results

    def F21(self, X):
        aSH = np.array([[4, 4, 4, 4], [1, 1, 1, 1], [8, 8, 8, 8], [6, 6, 6, 6], [3, 7, 3, 7], \
                        [2, 9, 2, 9], [5, 5, 3, 3], [8, 1, 8, 1], [6, 2, 6, 2], [7, 3.6, 7, 3.6]])
        cSH = np.array([0.1, 0.2, 0.2, 0.4, 0.4, 0.6, 0.3, 0.7, 0.5, 0.5])
        Results = 0
        for i in range(5):
            Results = Results - (np.dot((X - aSH[i, :]), (X - aSH[i, :]).T) + cSH[i]) ** (-1)
        return Results

    def F22(self, X):
        aSH = np.array([[4, 4, 4, 4], [1, 1, 1, 1], [8, 8, 8, 8], [6, 6, 6, 6], [3, 7, 3, 7], \
                        [2, 9, 2, 9], [5, 5, 3, 3], [8, 1, 8, 1], [6, 2, 6, 2], [7, 3.6, 7, 3.6]])
        cSH = np.array([0.1, 0.2, 0.2, 0.4, 0.4, 0.6, 0.3, 0.7, 0.5, 0.5])
        Results = 0
        for i in range(7):
            Results = Results - (np.dot((X - aSH[i, :]), (X - aSH[i, :]).T) + cSH[i]) ** (-1)
        return Results

    def F23(self, X):
        aSH = np.array([[4, 4, 4, 4], [1, 1, 1, 1], [8, 8, 8, 8], [6, 6, 6, 6], [3, 7, 3, 7], \
                        [2, 9, 2, 9], [5, 5, 3, 3], [8, 1, 8, 1], [6, 2, 6, 2], [7, 3.6, 7, 3.6]])
        cSH = np.array([0.1, 0.2, 0.2, 0.4, 0.4, 0.6, 0.3, 0.7, 0.5, 0.5])
        Results = 0
        for i in range(10):
            Results = Results - (np.dot((X - aSH[i, :]), (X - aSH[i, :]).T) + cSH[i]) ** (-1)
        return Results

    def rotate(self, angle):
        self.ax.view_init(elev=30, azim=angle)

    def plot_save(self, func, x1_range=(0, 10, 0.5), x2_range=(0, 10, 0.5), function_name='F1'):
        fig = plt.figure(1)  # 定义figure
        # ax = Axes3D(fig)  # 将figure变为3d
        ax = plt.axes(projection='3d')
        self.ax = ax
        fig.add_axes(ax)
        x1 = np.arange(x1_range[0], x1_range[1], x1_range[2])
        x2 = np.arange(x2_range[0], x2_range[1], x2_range[2])
        X1, X2 = np.meshgrid(x1, x2)  # 生成网格
        nSize = x1.shape[0]
        Z = np.zeros([nSize, nSize])
        for i in range(nSize):
            for j in range(nSize):
                if function_name in ['F15', 'F16', 'F21', 'F22', 'F23']:
                    X = [X1[i, j], X2[i, j], 0, 0, ]
                elif function_name in ['F19']:
                    X = [X1[i, j], X2[i, j], 0]
                elif function_name in ['F20']:
                    X = [X1[i, j], X2[i, j], 0, 0, 0, 0]
                else:
                    X = [X1[i, j], X2[i, j]]  # 构造F23输入
                X = np.array(X)  # 将格式由list转换为array
                Z[i, j] = func(X)  # 计算F23的值
        # 绘制3D曲面
        # rstride:行之间的跨度  cstride:列之间的跨度
        # rstride:行之间的跨度  cstride:列之间的跨度
        # cmap参数可以控制三维曲面的颜色组合
        ax.plot_surface(X1, X2, Z, rstride=1, cstride=1, cmap=plt.get_cmap('rainbow'))
        ax.contour(X1, X2, Z, zdir='z', offset=-0.1)  # 绘制等高线
        ax.set_xlabel('X1')  # x轴说明
        ax.set_ylabel('X2')  # y轴说明
        ax.set_zlabel('Z')  # z轴说明
        ax.set_title(function_name + '_space')
        plt.savefig('./fig/' + function_name + '.png')
        anim = animation.FuncAnimation(fig, self.rotate, frames=range(0, 360, 10))
        anim.save('./gif/' + function_name + '.gif', writer='pillow', fps=30)
        if select_func == 'all':
            plt.pause(5)
            plt.close()
        else:
            plt.show()
        return

    def selectFunc(self, func_str='F1', x1_range=(0, 10, 0.5), x2_range=(0, 10, 0.5), function_name='F1'):
        if func_str == 'F1':
            self.plot_save(self.F1, x1_range=(-100, 100, 2), x2_range=(-100, 100, 2), function_name='F1')
        elif func_str == 'F2':
            self.plot_save(self.F2, x1_range=(-10, 10, 0.2), x2_range=(-10, 10, 0.2), function_name='F2')
        elif func_str == 'F3':
            self.plot_save(self.F3, x1_range=(-100, 100, 2), x2_range=(-100, 100, 2), function_name='F3')
        elif func_str == 'F4':
            self.plot_save(self.F4, x1_range=(-100, 100, 2), x2_range=(-100, 100, 2), function_name='F4')
        elif func_str == 'F5':
            self.plot_save(self.F5, x1_range=(-30, 30, 2), x2_range=(-30, 30, 2), function_name='F5')
        elif func_str == 'F6':
            self.plot_save(self.F6, x1_range=(-100, 100, 2), x2_range=(-100, 100, 2), function_name='F6')
        elif func_str == 'F7':
            self.plot_save(self.F7, x1_range=(-1.28, 1.28, 0.02), x2_range=(-1.28, 1.28, 0.02), function_name='F7')
        elif func_str == 'F8':
            self.plot_save(self.F8, x1_range=(-500, 500, 10), x2_range=(-500, 500, 10), function_name='F8')
        elif func_str == 'F9':
            self.plot_save(self.F9, x1_range=(-5.12, 5.12, 0.2), x2_range=(-5.12, 5.12, 0.2), function_name='F9')
        elif func_str == 'F10':
            self.plot_save(self.F10, x1_range=(-30, 30, 0.5), x2_range=(-30, 30, 0.5), function_name='F10')
        elif func_str == 'F11':
            self.plot_save(self.F11, x1_range=(-600, 600, 5), x2_range=(-600, 600, 5), function_name='F11')
        elif func_str == 'F12':
            self.plot_save(self.F12, x1_range=(-50, 50, 1), x2_range=(-50, 50, 1), function_name='F12')
        elif func_str == 'F13':
            self.plot_save(self.F13, x1_range=(-50, 50, 1), x2_range=(-50, 50, 1), function_name='F13')
        elif func_str == 'F14':
            self.plot_save(self.F14, x1_range=(-65, 65, 2), x2_range=(-65, 65, 2), function_name='F14')
        elif func_str == 'F15':
            self.plot_save(self.F15, x1_range=(-5, 5, 0.2), x2_range=(-5, 5, 0.2), function_name='F15')
        elif func_str == 'F16':
            self.plot_save(self.F16, x1_range=(-5, 5, 0.2), x2_range=(-5, 5, 0.2), function_name='F16')
        elif func_str == 'F17':
            self.plot_save(self.F17, x1_range=(-5, 5, 0.2), x2_range=(-5, 5, 0.2), function_name='F17')
        elif func_str == 'F18':
            self.plot_save(self.F18, x1_range=(-2, 2, 0.1), x2_range=(-2, 2, 0.1), function_name='F18')
        elif func_str == 'F19':
            self.plot_save(self.F19, x1_range=(1, 3, 0.1), x2_range=(1, 3, 0.1), function_name='F19')
        elif func_str == 'F20':
            self.plot_save(self.F20, x1_range=(0, 1, 0.05), x2_range=(0, 1, 0.05), function_name='F20')
        elif func_str == 'F21':
            self.plot_save(self.F21, x1_range=(0, 10, 0.5), x2_range=(0, 10, 0.5), function_name='F21')
        elif func_str == 'F22':
            self.plot_save(self.F22, x1_range=(0, 10, 0.5), x2_range=(0, 10, 0.5), function_name='F22')
        elif func_str == 'F23':
            self.plot_save(self.F22, x1_range=(0, 10, 0.5), x2_range=(0, 10, 0.5), function_name='F23')
        return


if __name__ == '__main__':
    dir_fig = "./fig"
    if not os.path.exists(dir_fig):
        os.makedirs(dir_fig)
    dir_gif = "./gif"
    if not os.path.exists(dir_gif):
        os.makedirs(dir_gif)
    print("23 benchmark functions:")
    func_name = ['F' + str(i) for i in range(1, 24, 1)]
    func_str = ',  '.join(func_name) + ',  all'
    print(func_str)
    select_func = input("Please select one of the above functions and enter it:")
    plotFunction_o = PlotFunction()
    if select_func == 'all':
        for func in func_name:
            plotFunction_o.selectFunc(func)
    else:
        plotFunction_o.selectFunc(select_func)

将以上代码打包为exe

新建文件夹,如 23 benchmark functions, 路径中不要含有中文
在cmd窗口中打开该文件夹,
输入:pip install pipenv
输入:pipenv shell

在这里插入图片描述
输入:pip install pyinstaller
pip install numpy
pip install matplotlib
打包成.exe: pyinstaller -F --distpath Release/ -c --clean plot_benchmark_functions.py

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

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

相关文章

算法通关村18关 | 透析回溯的

回溯有清晰的解题模板&#xff0c; void backtracking(参数){if (终止条件){存放结果;return;}for (选择本层中的集合元素&#xff08;画成树&#xff0c;就是树节点孩子的大小) {处理节点;backtracking();回溯&#xff0c;撤销处理结果;}} 1. 从N叉树说起 在回溯之前&#x…

时序分解 | MATLAB实现ICEEMDAN+SE改进的自适应经验模态分解+样本熵重构分量

时序分解 | MATLAB实现ICEEMDANSE改进的自适应经验模态分解样本熵重构分量 目录 时序分解 | MATLAB实现ICEEMDANSE改进的自适应经验模态分解样本熵重构分量效果一览基本介绍程序设计参考资料 效果一览 基本介绍 ICEEMDANSE改进的自适应经验模态分解样本熵重构分量 包括频谱图 避…

配置Xftp绕过跳板机直连内网环境

一、需求说明 因现场环境限制&#xff0c;现在只有一台管理主机可连入内网环境&#xff0c;但因现在需要传入大量数据到内网环境&#xff0c;二管理主机的存储又无法满足需求&#xff0c;rz和sz命令又有传输大小限制&#xff0c;因此&#xff0c;我们来看下如何配置【隧道】实现…

Win10如何找回图片查看器

近期有小伙伴反映在将Win10升级之后发现电脑自带的图片查看器没有了&#xff0c;这是怎么回事&#xff0c;该怎么找回呢&#xff0c;下面小编就给大家详细介绍一下Win10找回图片查看器的方法&#xff0c;有需要的小伙伴快来和小编一起阅读看看吧。 win10找回windows照片查看器…

日志平台搭建第三章:Linux安装logstash

相关链接 项⽬主⻚&#xff1a; https://www.elastic.co/cn/downloads/logstash 下载地址&#xff1a; wget https://artifacts.elastic.co/downloads/logstash/logstash-7.5.1.tar.gz 官网下载可能比较慢&#xff0c;下面提供下载地址 百度云链接&#xff1a;https://pan.…

【Linux】对进程概念的理解

一丶进程概念 进程定义 进程是一个具有一定独立功能的程序在一个数据集合上依次动态执行的过程。进程是一个正在执行的程序的实例&#xff0c;包括程序计数器、寄存器和程序变量的当前值。 进程特征 1.进程依赖于程序运行而存在&#xff0c;进程是动态的&#xff0c;程序是…

生成树协议 STP(spanning-tree protocol)

一、STP作用 1、消除环路&#xff1a;通过阻断冗余链路来消除网络中可能存在的环路。 2、链路备份&#xff1a;当活动路径发生故障时&#xff0c;激活备份链路&#xff0c;及时恢复网络连通性。 二、STP选举机制 1、目的&#xff1a;找到阻塞的端口 2、STP交换机的角色&am…

UG\NX CAM二次开发 设置工序毛坯 UF_CAMGEOM_append_items

文章作者:代工 来源网站:NX CAM二次开发专栏 简介: UG\NX CAM二次开发 设置工序毛坯 UF_CAMGEOM_append_items 效果: 代码: static int init_proc(UF_UI_selection_p_t select, void* user_data) { int errorCode = 0; int num_triples = 1; UF_UI_mask_t mas…

JavaScript设计模式(五)——发布订阅模式、桥接模式、组合模式

个人简介 &#x1f440;个人主页&#xff1a; 前端杂货铺 &#x1f64b;‍♂️学习方向&#xff1a; 主攻前端方向&#xff0c;正逐渐往全干发展 &#x1f4c3;个人状态&#xff1a; 研发工程师&#xff0c;现效力于中国工业软件事业 &#x1f680;人生格言&#xff1a; 积跬步…

Rokid Jungle--Max pro

介绍和功能开发 YodaOS-Master操作系统&#xff1a;以交换计算为核心&#xff0c;实现单目SLAM空间交互&#xff0c;具有高精度、实时性和稳定性。发布UXR2.0SDK&#xff0c;为构建空间内容提供丰富的开发套件 多模态交互 算法原子化 多种开发工具协同 多生态支持 骁龙XR2…

无swing,高级javaSE毕业之贪吃蛇游戏(含模块构建,多线程监听服务),已录制视频

JavaSE&#xff0c;无框架实现贪吃蛇 B站已发视频&#xff1a;无swing&#xff0c;纯JavaSE贪吃蛇游戏设计构建 文章目录 JavaSE&#xff0c;无框架实现贪吃蛇1.整体思考2.可能的难点思考2.1 如何表示游戏界面2.2 如何渲染游戏界面2.3 如何让游戏动起来2.4 蛇如何移动 3.流程图…

Jetsonnano B01 笔记7:Mediapipe与人脸手势识别

今日继续我的Jetsonnano学习之路&#xff0c;今日学习安装使用的是&#xff1a;MediaPipe 一款开源的多媒体机器学习模型应用框架。可在移动设备、工作站和服务 器上跨平台运行&#xff0c;并支持移动 GPU 加速。 介绍与程序搬运官方&#xff0c;只是自己的学习记录笔记&am…

QT 完成登陆界面跳转到聊天室+完成学生管理系统的查找和删除功能

一、完成登陆界面跳转到聊天室 1> 项目结构 2> 源码 ① .pro ②main #include "mywnd.h" #include"chatCli.h" #include <QApplication>int main(int argc, char *argv[]) {QApplication a(argc, argv);MyWnd w;w.show();Form f;QObject::co…

Vue2+Vue3基础入门到实战项目(前接六 副线一)—— 面经 项目

day1 接口文档地址&#xff1a;https://www.apifox.cn/apidoc/project-934563/api-20384515 一、项目功能演示 1.目标 启动准备好的代码&#xff0c;演示移动端面经内容&#xff0c;明确功能模块 2.项目收获 二、项目创建目录初始化 vue-cli 建项目 1.安装脚手架 (已安装…

对Spring核心思想的理解(二)

Spring的第二大核心思想&#xff0c;面向切面编程。 官方定义是&#xff1a;通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术。AOP是OOP的延续&#xff0c;是软件开发中的一个热点&#xff0c;也是Spring框架中的一个重要内容&#xff0c;是函数式编程的一种衍…

【大数据实训】用Hbase模拟电影搜索引擎(四)

博主介绍&#xff1a;✌全网粉丝6W,csdn特邀作者、博客专家、Java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于大数据技术领域和毕业项目实战✌ &#x1f345;文末获取项目联系&#x1f345; 《云计算与大数据处理》课程大作业评分表 项目考核内…

python读取监控流通过websocket连接发送到java服务端,服务端推流到前端

python读取逐帧读取监控 import websocket import base64 import cv2 import numpy as npvideoPath "rtmp://ns8.indexforce.com/home/mystream" // 此为公开RTSP流def on_message(ws, message):print(1)def connection_tmp(ws):websocket.enableTrace(True)ws w…

时序分解 | MATLAB实现基于小波分解信号分解分量可视化

时序分解 | MATLAB实现基于小波分解信号分解分量可视化 目录 时序分解 | MATLAB实现基于小波分解信号分解分量可视化效果一览基本介绍程序设计参考资料 效果一览 基本介绍 基于小波分解的分量可视化&#xff0c;MATLAB编程程序&#xff0c;用于将信号分解成不同尺度和频率的子信…

动态库的制作和使用

动态库和静态库的工作原理 配置环境变量 方式1&#xff1a; 坏处&#xff1a;环境变量是临时的 方式2&#xff1a; 1 用户级别的配置&#xff1a; 进入到/home&#xff0c;找到.bashrc&#xff0c;进入 先去找到库的路径 然后再到.bashrc最后一行输入路径 使其生效 2 系统…

芯片产业链补齐,中国成全球唯一拥有全部工业门类的国家

随着一款国产5G手机的发布&#xff0c;中国制造在芯片产业链方面也形成了自己的完整体系&#xff0c;成为全球唯一一个拥有全部工业门类的国家&#xff0c;这是非常值得高兴的消息。 中国早在2010年就成为全球最大制造国&#xff0c;不过当时中国制造所需要的芯片大多都需要从海…