【MATLAB傅里叶级数3D动画演示】

2023-11-14

傅里叶级数3D动画演示,编写环境:MATLAB2021b

 

classdef Msg < event.EventData
    %MSG    定义事件消息,event.EventData子类,消息中封装有要发布的数据
    %Data   数据可以是任意类型
    properties
        Data         %没有定义类型,所以发布的数据可以是任意类型
    end
    
    methods
        function obj = Msg(newData)
            %MSG 事件消息构造函数,由传递的数据决定数据类型
            obj.Data = newData;
        end

    end
end
classdef Prt < handle
    %PRT 信号参数类
    %    作者:易
    %    964615453@qq.com
    %    2022-5-7
    properties
        SingleName                  %信号名称
        T                           %信号周期
        N                           %谐波次数
        t                           %采样时间序列
        y                           %信号函数表达式句柄,例如:y = @(t)square(w.*t)
        SR='Seconds'                %时间坐标单位
        enRadio = false             %是否出发广播帧,ture存储GIF动画文件
        nD='view(app.axh,3)'        %'view(app.axh,3)'绘制3维图动画,'view(app.axh,2)'绘制2维动画
    end
    methods
      function P = Prt(SingleName,T,N,t,y,SR,enRadio,nD)
         %构造函数,并参数赋值
         P.SingleName=SingleName;
         P.T=T;
         P.t=t;
         P.N=N;
         P.y=y;
         P.SR=SR;
         P.enRadio=enRadio;
         P.nD=nD;
      end
   end
end
classdef GenerateSingls < Prt
    %GENERATESINGL 常见信号生成
    %参数含义见Prt.m 
    %    作者:易
    %    964615453@qq.com
    %    使用枚举不是最好的选择,之前没有用过枚举所以尝试使用体会一下
    %    2022-5-11
    %    2022-5-15         为了演示旋转动画效果增加了3个旋转的方波
    enumeration
      Sawtooth('锯齿波',4,10,-4:0.025:4,@(t)sawtooth(2*pi/4.*t,.745),'Seconds',false,'view(app.axh,[30,35])')
      Square('方波',4,20,-4:0.025:4,@(t)square(2*pi/4.*t),'Seconds',false,'view(app.axh,[30,35])')
      %Square30('方波旋转30',4,20,-4:0.025:4,@(t)(exp(1j*pi/6).*square(2*pi/4.*t)),'Seconds',false,'view(app.axh,[30,35])')
      %Square45('方波旋转45',4,20,-4:0.025:4,@(t)(exp(1j*pi/4).*square(2*pi/4.*t)),'Seconds',false,'view(app.axh,[30,35])')
      %Square90('方波旋转90',4,20,-4:0.025:4,@(t)(exp(1j*pi/2).*square(2*pi/4.*t)),'Seconds',false,'view(app.axh,[30,35])')
      %================================================================
      %作者注:
      %以上3条方波的语句可以取消注释,重启Main,选择其中的信号并启动3D动画
      % 转动3D图到到旋转的角度,试试看;
      % 有点烧脑,由于投影的切面始终是正交方向,所以看着有点奇怪。
      %这应该如何理解呢?电磁波的极化角吗?
      %===============================================================
      Triangle('三角波',4,10,-4:0.025:4,@(t)mod(t,4),'Seconds',false,'view(app.axh,[30,35])')
      AbsSin('正正弦波',4,10,-4:0.025:4,@(t)abs(sin(2*pi/4.*t)),'Seconds',false,'view(app.axh,[30,35])')
      AbsSawtooth('正锯齿波',4,10,-4:0.025:4,@(t)abs(sawtooth(2*pi/4.*t,.745)),'Seconds',false,'view(app.axh,[30,35])')
      Cos('余弦波',1,1,0:0.025:4,@(t)cos(2*pi.*t),'Seconds',false,'view(app.axh,[30,35])')
      CosAddCos('余弦波相加波',1,11,0.5:0.002:2.5,@(t)(cos(2*pi*10.*t)+cos(2*pi*11.*t)),'Seconds',false,'view(app.axh,[30,35])')
      Diric7('狄利克雷波_奇数',2*pi,7,linspace(-2*pi,2*pi,301),@(t)diric(t,7),'Rad',false,'view(app.axh,[60,70])')
      Diric8('狄利克雷波_偶数',4*pi,7,linspace(-2*pi,2*pi,301),@(t)diric(t,8),'Rad',false,'view(app.axh,2)')
    end
end
classdef FS_Visual3D_x_y < handle
    %FS_VISUAL3D 可视化傅里叶级数,
    % 用傅里叶复数系数重构信号函数,沿时间轴展开绘制任意周期函数3D曲线
    % 绘制复数信号函数在实轴及虚轴上的投影
    % 可视化动画加深对傅里叶级数的理解
    %============================================================
    % 一年多以前就想动手写这个代码,但没有想明白从哪入手
    % 疫情期间不能上班正好可以静下来写代码  
    %============================================================
    %  作者:易
    %        964615453@qq.com
    %        2022-4-23 8:36  完成2D的基本功能
    %        2022-4-25       完成3D绘图功能
    %        2022-4-26       加入实轴和虚轴的投影
    %        2022-4-28       整合现有方法,增加最终接口完善本类
    %        2022-4-29       修改bug,规范代码
    %        2022-5-2        输入多种信号函数验证代码的正确性
    %        2022-5-3 3:40   修正幅值为2倍,旋转方向,axLimt
    properties
        axh         %图像对象句柄
        Ln=[]       %线对象数组,初始化为空
        Rn=[]       %圆对象数组,初始化为空,圆对象实际为线对象,方便3D绘图
        RnCk=[]     %保存每一个圆的圆心当前的坐标,复数
        Lfun        %线对象,最终绘制轨迹,傅里叶级数累加结果绘制的曲线
        xLfun       %线对象,实部投影
        yLfun       %线对象,虚部投影
        fMsg   Msg  %广播帧数据消息对象
        axLimt      %xy轴范围限制
    end
    events
        oneframe    %广播一帧数据
    end
    %公共方法
    methods 
        function obj = FS_Visual3D_x_y(axh)
            if nargin == 1
                obj.axh=axh;
            end
            obj.fMsg=Msg([]);       %实例化事件消息对象
        end
        function FourierSeriesPlot(obj,C0,Cn,fn,t,SR,enRadio)
            %C0         这个参数暂时不用,如果需要直流成分量可以加上,但旋转轴直线需要重新定位
            %Cn         傅里叶级数系数向量数组
            %fn         与傅里叶级数向量对应的频率数组,这个参数似乎有些多余,
            %           但当初设计时考虑到Cn、fn是一一对应的,但可以不连续
            %t          采样时间序列
            %enRadio    是否广播图像帧,true、false
            %SR         时间坐标,秒或弧度
            init_ax(obj);                               %初始化轴对象
            line(obj.axh,0*t,0*t,t);                    %画出时间线
            axLimt = floor(sum(abs(Cn)).*2+.5)+1;       %2倍幅值
            xlim(obj.axh,[-axLimt,axLimt]);
            ylim(obj.axh,[-axLimt,axLimt]);
            obj.axLimt = axLimt;
            switch SR
                case 'Seconds'
                    %str=['Time' char(40) 'Seconds' char(41)];
                    zlabel(obj.axh,'Time(Seconds)');
                case 'Rad'
                    %str=['Time' char(40) 'Rad' char(41)];
                    zlabel(obj.axh,'Time(Rad)');
            end
            N=length(t);
            for k = 1:N
                tk=t(k);
                Ct=Cn.*exp(1j.*fn.*2.*pi.*tk).*2;     %2倍幅值,tk时刻每谐波分量旋转向量的位置,复数
                FS_Plot3D(obj,Ct,tk);
                drawnow
                if enRadio == true
                    obj.fMsg.Data=getframe(obj.axh);    %获取axh轴对象的一帧数据
                    notify(obj,'oneframe',obj.fMsg);    %广播一帧数据,选择存储Gif文件时触发
                end
            end
        end
    end
    %私有方法
    methods (Access = private)
        function FS_Plot3D(obj,Cn,tk)
            N = length(Cn);     %傅里叶级数的个数
            
            if isempty(obj.Ln) && isempty(obj.Rn)
                %绘制第一帧并创建圆和线对象数组
                
                 Ci=0; 
                    %这个初始值代表傅里叶系数中的C0项,即直流量,令其为零并不会改变波形
                obj.RnCk = [obj.RnCk Ci];
                for i= 1:N
                    [Ck,L_h,R_h] = RnLn_Plot3D(obj,i,Ci,Cn(i),tk);
                    Ci=Ck;
                    obj.Ln = [obj.Ln L_h];      %保存线对象
                    obj.Rn = [obj.Rn R_h];      %保存圆对象
                    obj.RnCk = [obj.RnCk Ck];   %保存当前圆心的坐标
                end
                x=[real(Ck) real(Ck)];
                y=[imag(Ck) imag(Ck)];
                z=[tk tk];
                obj.Lfun = line(obj.axh,x,y,z,  ...
                    'color','r','LineStyle','-','LineWidth',3); %绘制轨迹
                axLimt = obj.axLimt;
                xx=[-axLimt+0.1 -axLimt+0.1];
                obj.xLfun = line(obj.axh,xx,y,z,  ...
                    'color','k','LineStyle',':','LineWidth',1); %绘制实部投影线
                yy=[axLimt-0.1 axLimt-0.1];
                obj.yLfun = line(obj.axh,x,yy,z,  ...
                    'color','b','LineStyle','-','LineWidth',1); %绘制虚部投影线
            else
                Ci=0;
                for i= 1:N
                    Ck = RnLn_Update3D(obj,i,Ci,Cn(i),tk);       %更新圆的位置及级数向量的位置
                    Ci=Ck;
                end
                x=get(obj.Lfun,'XData');
                y=get(obj.Lfun,'YData');
                z=get(obj.Lfun,'ZData');
                x=[x real(Ck)];
                y=[y imag(Ck)];
                z=[z tk];
                axLimt = obj.axLimt;
                set(obj.Lfun,'XData',x,'YData',y,'ZData',z);    %更新轨迹
                xx=[get(obj.xLfun,'XData') -axLimt+0.1];
                set(obj.xLfun,'XData',xx,'YData',y,'ZData',z);   %更新实部投影线
                yy=[get(obj.yLfun,'YData') axLimt-0.1];
                set(obj.yLfun,'XData',x,'YData',yy,'ZData',z);   %更新虚部投影线
            end
        end
   
        function init_ax(obj)
            %首次进入初始化轴对象
            cla(obj.axh);
            hold(obj.axh,"on");
            axis(obj.axh,'equal');
            box(obj.axh,'on');
            xlabel(obj.axh,'Real');
            ylabel(obj.axh,'Imag');
            zlabel(obj.axh,'Time Axis');
            title(obj.axh,'Fourie Series 3D Plot','FontSize',18,'FontWeight','bold');
        end

        function [Ck,L_h,R_h]= RnLn_Plot3D(obj,i,Ci,Cj,tK)
            % 创建园对象和线对象,这里的圆也是线对象,使用line绘制的线对象
            % i                         第i次谐波
            % Ci                        给定相对坐标,复数,其为之前的1——i傅里叶级数之和
            % Cj                        第j傅里叶级数,复数
            % Ck                        输出下一点的坐标,复数,1——k傅里叶级数之和
            % R_h                       返回一个圆对象,便于用set移动圆的位置
            % L_h                       返回一个线对象,便于用set移动线的位置
            % tk                        z轴坐标,时间,tk时刻
            xi=real(Ci);
            yi=imag(Ci);
            xj=real(Cj);
            yj=imag(Cj);
            Ck=Ci+Cj;
            L_h=line(obj.axh,[xi,xj+xi],[yi,yj+yi],[tK tK],'color','b','LineWidth',1);   %绘制Ci向量线
            rj=abs(Cj);                 %j次谐波所对应的圆半径,圆半径即为复数的摸
            dCx=real(Ci);               %圆心的x坐标
            dCy=imag(Ci);               %圆心的y坐标
            w=0:0.04:2*pi;
            if i == 1
                x=rj.*cos(w);           %1次谐波圆周各点,x数据,1次波不加偏移
                y=rj.*sin(w);           %1次谐波圆周各点,y数据,1次波不加偏移
            else
                x=rj.*cos(w)+dCx;       %j次谐波圆周各点,x+偏移数据
                y=rj.*sin(w)+dCy;       %j次谐波圆周各点,y+偏移数据
            end
            z=ones(length(x),1).*tK;    %时间坐标,j次谐波圆移动至tk
            % 绘制园
            R_h=line(obj.axh,x,y,z','LineStyle',':','LineWidth',0.2,'Color','b');
        end

        function Ck=RnLn_Update3D(obj,i,Ci,Cj,tk)
            % 更新圆对象和线对象
            xi=real(Ci);
            yi=imag(Ci);
            xj=real(Cj);
            yj=imag(Cj);
            Ck=Ci+Cj;
            set(obj.Ln(i),'XData',[xi,xj+xi],'YData',[yi,yj+yi],'ZData',[tk tk]);   %更新绘制Ci向量线
            %rj=abs(Cj); %计算Cj向量所对应的圆半径
            dC=Ci-obj.RnCk(i);      %计算圆心偏移坐标
            obj.RnCk(i)=Ci;         %保存当前圆的圆心位置
            dCx=real(dC);
            dCy=imag(dC);
            x=get(obj.Rn(i),'XData');
            y=get(obj.Rn(i),'YData');
            x=x+dCx;
            y=y+dCy;
            z=ones(length(x),1).*tk;
            if Ci==0
                set(obj.Rn(i),'ZData',z');
            else
                set(obj.Rn(i),'XData',x,'YData',y,'ZData',z');  %更新圆对象
            end
        end
    end %methods

end %classdef

有需要完整代码的读友请将你的邮箱发给我,我的邮箱:964615453@qq.com

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【MATLAB傅里叶级数3D动画演示】 的相关文章

  • MATLAB:比较两个不同长度的数组

    我有两个长度不同的数组 由于采样率不同 需要比较 我想对较大的数组进行下采样以匹配较小的数组的长度 但是该因子不是整数而是小数 举个例子 a 1 1 375 1 75 2 125 2 5 2 875 3 25 b 1 2 3 有什么方法可以
  • 傅里叶变换定理 matlab

    我目前正在尝试理解二维傅里叶位移定理 根据我到目前为止所了解到的情况 图像空间中的平移会导致相位差异 但不会导致频率空间中的幅度差异 我试图用一个小例子来演示这一点 但它只适用于行的移位 而不适用于列的移位 这是一个小演示 我只在这里显示幅
  • 单元格的 Fieldnames 函数的等效项

    正如标题所说 只是想知道是否有一个函数可以用作字段名 http www mathworks co uk help matlab ref fieldnames html 但适用于单元格 所以如果我有类似的东西 a imread redsqua
  • 如何在Matlab中将世界坐标转换为像素索引

    我有 512x512x313 体积的 dicom 图像 并且我有一个以世界坐标表示的点 57 7475 63 4184 83 1515 我如何在 Matlab 中获得该世界坐标的相应像素坐标 我不想戳破你的幻想 但你所要求的是不可能的 我能
  • 如何加载具有可变文件名的 .mat 文件?

    select all mat files oar dir oar mat n oar name loop through files for l 1 length oar load pat oar l lt this is the mat
  • 从 imread 返回的 ndims

    我正在从文件夹中选取图像 尺寸为128 128 为此 我使用以下代码行 FileName PathName uigetfile jpg Select the Cover Image file fullfile PathName FileNa
  • 垂直子图的单一颜色条

    我想让下面的 MATLAB 图有一个沿着两个子图延伸的颜色条 像这样的事情 使用图形编辑器手动完成 Note 这与提出的问题不同here https stackoverflow com questions 39950229 matlab t
  • MATLAB 可执行文件太慢

    我使用以下命令将 MATLAB 程序转换为基于控制台的应用程序deploytool在 MATLAB 中 MATLAB m文件执行大约需要 2 秒 但在我将其转换为可执行文件并调用 exe 执行需要45秒 太长了 我想将 MATLAB 程序与
  • matlab部署工具到java包javac错误

    我正在尝试将我的程序包装为与 java 一起使用 我首先尝试了一个简单的 hello world 你好世界 m disp 你好世界 我使用了deploytool并选择了java包 当它到达这一行时 执行命令 javac verbose cl
  • 将数据提示堆栈放在轴标签顶部,并在轴位置发生更改后更新轴标签

    此问题仅适用于 unix matlab Windows 用户将无法重现该问题 我在尝试创建位于 y 轴标签顶部的数据提示时遇到问题 下图很能说明问题 正如您所看到的 在 ylabel 附近创建的数据提示将到达 ylabel 文本的底部 而期
  • 如何正确从表中删除 NaN 值

    在 Matlab 中阅读 Excel 电子表格后 不幸的是 我的结果表中包含了 NaN 例如这个 Excel 表格 将产生此表 其中出现额外的 NaN 列 我尝试使用以下代码片段删除 NaN measurementCells readtab
  • Numpy 相当于 MATLAB 的 hist [重复]

    这个问题在这里已经有答案了 由于某种原因 Numpy 的 hist 总是返回比 MATLAB 的 hist 少 1 个 bin 例如在 MATLAB 中 x 1 2 2 2 1 4 4 2 3 3 3 3 Rep Val hist x un
  • 禁止 MATLAB 自动获取焦点[重复]

    这个问题在这里已经有答案了 我有以下问题 在我的 MATLAB 代码中 我使用如下语句 figure 1 更改某些数据的目标数字 问题是 在此 MATLAB 之后 系统将焦点集中在具有该图形的窗口上 当我在后台运行一个大脚本并尝试在计算机上
  • Matlab:3D 堆积条形图

    我正在尝试创建一个 3D 堆积条形图 如这个问题所示 Matlab 中的 3D 堆叠条形图 https stackoverflow com questions 13156133 3d stacked bars in matlab 5D 然而
  • 将 kinect RGB 和深度值转换为 XYZ 坐标

    我正在寻找一种简单的方法将 kinect RGB 和深度值转换为 XYZ 坐标 使用 MATLAB 我的目标是一个输入为以下内容的函数 每个点的 RGB 和深度值Kinect相机 并输出 每个点的 x y 和 z 值 RGB 深度 RGB
  • 在 MATLAB 中绘图后恢复轴

    从文本文件绘制多种方法的输出后 未显示轴的右侧和上侧 我需要拥有它们并将它们加粗 就像当前的轴一样 绘制的数据来自存储每种方法数据的文件 每个数据文件都是一个 256x2 文件 包含 0 1 之间的值 第一列是精度 第二列是召回率 figu
  • 通过 cuFFT 进行逆 FFT 缩放

    每当我使用 cuFFT 绘制程序获得的值并将结果与 Matlab 的结果进行比较时 我都会得到相同形状的图形 并且最大值和最小值位于相同的点 然而 cuFFT 得到的值比 Matlab 得到的值大得多 Matlab代码是 fs 1000 s
  • MATLAB - 通过垂直连接子矩阵重新排列矩阵

    我在执行以下任务时遇到问题 假设一个 3x6 矩阵 A 0 2787 0 2948 0 4635 0 8388 0 0627 0 0435 0 6917 0 1185 0 3660 0 1867 0 2383 0 7577 0 6179 0
  • 将向量(或弧)绘制到玫瑰图上。 MATLAB

    我有两个数据集 其中详细列出了angles 我正在绘制玫瑰图 angles 0 8481065519 0 0367932161 2 6273740453 n 另一个 从这组角度详细说明方向统计 angle error 0 848106563
  • 如何选择面积最大的对象?

    我用过bwconvhull检测图像的某个部分 正如您在图像中看到的那样 有许多具有特定质心的对象 我想做的是检测面积最大的物体 左起第一个大物体 并忽略其他物体 我应该遵循哪种方法 我将非常感谢您的帮助 以下是代码 由于我仍在努力 所以写得

随机推荐

  • 游戏搬砖简述-1

    游戏搬砖是一种在游戏中通过重复性的任务来获取游戏内货币或物品的行为 这种行为在游戏中非常普遍 尤其是在一些MMORPG游戏中 虽然游戏搬砖看起来很无聊 但是它确实是一种可以赚钱的方式 而且对于一些玩家来说 游戏搬砖也是一种乐趣 一 游戏搬砖
  • sort命令文件过滤分割与合并

    sort命令是在Linux里非常有用 它将文件进行排序 并将排序结果标准输出 sort命令既可以从特定的文件 也可以从stdin中获取输入 语法 sort 选项 参数 b 忽略每行前面开始出的空格字符 c 检查文件是否已经按照顺序排序 d
  • MySQL创建用户的三种方法

    前言 mysql创建用户的方法分成三种 INSERT USER表的方法 CREATE USER的方法 GRANT的方法 一 账号名称的构成方式 账号的组成方式 用户名 主机 所以可以出现重复的用户名 跟其他的数据库不一样 用户名 16字符以
  • uni-app小程序项目发布流程

    uni app小程序项目发布流程开发工具 HbuilderX编辑器 微信小程序开发工具1 小程序开发工具就可以点击发行版本了 2 登录开发者平台配置域名白名单 在开发者设置里完成服务器域名配置 域名白名单 不在域名白名单里的URL资源正式上
  • mysql 时区设定_mysql时区设置

    sharath March 17 2007 at 10 59 amhii am new to linux and i have to stop the mysqld service so as to install bugzilla i h
  • 信息学奥赛一本通 1182:合影效果

    题目链接 http ybt ssoier cn 8088 problem show php pid 1182 include
  • 【Docker安装Gitlab管理项目代码并整合Sonarqube分析代码质量】

    Docker安装Gitlab管理项目代码并整合Sonarqube分析代码质量 完整操作步骤 一 前言 二 准备工作 三 安装Gitlab 3 1 Docker安装最新版Gitlab 3 2 访问Gitlab登录页面 http 192 168
  • 如何使用R语言

    R 语言是一种流行的数据分析和统计计算软件 要使用 R 语言 您需要先安装 R 软件 可以在 CRAN 网站 https cran r project org 上下载并安装 R 软件 安装完成后 可以通过打开 R 终端或使用 R 编辑器来使
  • 前端页面判断手机号

    function submitHandler var phone phone val var myreg 1 3 4 5 7 8 9 0 9 9 if myreg test phone modal alertWarning 请输入正确的手机
  • 【2】测试用例设计方法-场景法

    场景法 事件触发 基本流 备选流 画流程图 覆盖每条路径 场景法也是路径覆盖的方法 也是流程分析法 优先级根据两个来判断 1 使用率 2 重要性 一条路径可能有多个用例 用等价类边界值 每个数据就是一个用例
  • 天美服务器未响应,王者荣耀服务器上热搜,无数玩家遭遇掉线烦恼,天美该怎么办?...

    原标题 王者荣耀服务器上热搜 无数玩家遭遇掉线烦恼 天美该怎么办 王者荣耀服务器上热搜 无数玩家遭遇掉线烦恼 天美该怎么办 目前国内依旧处于一个比较特殊的时期 宅在家里无法上班的游戏玩家们也还有不少 当这些玩家集中到热门时间段上游戏的时候
  • 妖怪屋 服务器维护中,《阴阳师:妖怪屋》3月3日维护更新公告

    亲爱的家主大人 为了给大家带来更好的游戏体验 服务器将于3月3日 周三 早上7 00 8 30进行停服维护 如未能按时完成 则开服时间将会顺延 维护期间将暂时无法进入服务器进行游戏 给各位带来的不便 敬请谅解 非常感谢大家的支持和理解 鞠躬
  • Docker的相关命令及自定义centos和tomcat的镜像

    1 docker命令 1 docker的安装 yum install docker 2 docker的启动 systemctl start docker 3 查看docker的所有镜像 docker images 4 运行docker的he
  • JavaFX——添加图片ImageView

    Image 用于加载图片文件ImageView 用于显示图片位置 Javafx scence image Image 目前支持BMP GIF JPEG PNG JPG图片格式 Image image new Image URL 其中 URL
  • 在Xcode中使用Git进行源码版本控制

    本文翻译自Understanding Git Source Control in Xcode 译者myShire 欢迎您加入我们的翻译小组 在应用程序开发过程中 很重要的一部分工作就是如何进行源码的版本控制 当代码出现问题时 我们就需要将代
  • 计算机网络速成课【体系结构】

    计算机网络体系结构 计算机网络概述 计算机网络 组成 从组成部分上看 一个完整的计算机网络主要由硬件 软件 协议三大部分组成 缺一不可 硬件主要指 主机 通信链路 交换设备和通信设备等 软件主要指 用户使用的各种软件 协议指 网络传输数据时
  • 【通览一百个大模型】Anthropic LLM(Anthropic)

    通览一百个大模型 Anthropic LLM Anthropic 作者 王嘉宁 本文章内容为原创 仓库链接 https github com wjn1996 LLMs NLP Algo 订阅专栏 大模型 NLP 算法 可获得博主多年积累的全
  • Office2016+math type出错 word无法加载此加载程序

    今天遇到一个非常非常非常奇葩的问题 关于网上的答案 想必大部分人都试过 但是如果你不幸看到我这篇文章 那么恭喜你 这个问题会让你无语 首先贴出问题 说明一下配置 我的电脑是64位 安装的office也是64位 微软诚不欺我 个蛋 就在我翻来
  • Redis两种客户端:lettuce和Jedis的区别

    spring boot 2的spring boot starter data redis中 默认使用的是lettuce作为redis客户端 它与jedis的主要区别如下 Jedis是同步的 不支持异步 Jedis客户端实例不是线程安全的 需
  • 【MATLAB傅里叶级数3D动画演示】

    傅里叶级数3D动画演示 编写环境 MATLAB2021b classdef Msg lt event EventData MSG 定义事件消息 event EventData子类 消息中封装有要发布的数据 Data 数据可以是任意类型 pr