吉大秦少游
吉林大学硕士,研究兴趣为芯片数字设计
展开
-
Matlab如何查看主函数(脚本)中调用的其他函数
Matlab的profile函数,类似于一个事件探查工具,能够查询主程序调用的所有函数,包括内置函数,以及各个函数所用的时间,包括自用时间和总时间等等。首先打开事件探查器profile on1运行主程序代码,举例如下,你应该替换成你自己的主程序代码plot(magic(35))1查看并保存结果profile viewerp = profile(‘info’);profsave(p,‘profile_results’)123结果一目了然,不贴图,不解释。自用时间转载 2022-04-12 22:55:22 · 2072 阅读 · 0 评论 -
如何对MATLAB函数的输入进行检查和解析?
文章目录为什么要对函数的输入进行检查validateattributes的基本使用validateattributes的额外提示信息validateattributes支持的检查类型和属性validatestringinputParser的基本使用inputParser的可选参数和默认参数值设置inputParser和validateattributes联合使用为什么要对函数的输入进行检查在工程计算中,如果一个函数的输入有错误,我们总是希望能够尽早的通过对输入的检查,捕捉到这些错误,并及时终止程序。这样原创 2022-02-15 15:42:12 · 626 阅读 · 0 评论 -
MATLAB在做图像处理时容易出现的一个误区:为提高运算速度使用预先声明的零矩阵存储图像数据
MATLAB在做图像处理时容易出现的一个误区:为提高运算速度使用预先声明的零矩阵存储图像数据。原创 2021-11-30 20:11:11 · 2527 阅读 · 0 评论 -
Matlab2020a使用App Designer如何导出exe
导出exe共三步,前两部为配置编译器和配置Runtime,第三步为导出exe:1 安装MATLAB编译器首先需要查询MATLAB是否已经安装编译器,在命令行键入mex -setup -v如果有下面的打印信息,则说明没有编译器这个时候就需要下载安装,下载的路径如下:MATLAB Support for MinGW-w64 C/C++ Compiler该编译器看介绍是适用于MATLAB2017之后的版本。很不错!下载好之后,将该文件直接拖入MATLAB的命令行窗口,回车稍等一会儿就会弹出安装原创 2021-06-03 21:56:30 · 4474 阅读 · 0 评论 -
如何用matlab进行文件的读写操作(Excel,Word,PDF,TXT)
如何用matlab进行文件的读写操作(Excel,Word,PDF)1 Excel读写1.1 Excel读操作1.1.1 读取Excel内容1.1.2 读取表格中指定Sheet的内容1.1.3 读取表格中指定Sheet的指定范围内容1.1.4 表格读取内容的几种形式1.2 Excel写操作2 Word读写2.1 Word读操作2.2 word写操作3 PDF读写3.1 PDF读操作3.2 PDF写操作Matlab功能强大,如何用matlab进行文件的读写操作,乃至批量文件的读写和操作,比如批量读取exce原创 2021-05-06 23:12:29 · 3391 阅读 · 1 评论 -
连续系统传递函数,与离散化Z变换传递函数仿真对比中常见的几个问题
文章目录1 问题重现2 主要问题解决3连续系统转离散化需要注意的问题1 问题重现相信做过连续系统传递函数,转成离散系统传递函数的同学,很多都可能遇到这样一个问题:相同的数据raw_data激励,在连续系统传递函数TF的处理后,数据很理想;但由于连续系统数据量太大,采样后形成rawsample_data,TF也根据下面的拉氏变换-Z变换表,进行Z变换,形成离散系统传递函数TF_d。然后无论是把 raw_data 还是 rawsample_data,在simulink中经过TF_d处理的数据结果和之前大不一原创 2020-08-28 00:25:00 · 3707 阅读 · 2 评论 -
simulink中固定大小矩阵和可变大小矩阵创建的几个陷阱
文章目录1 固定大小矩阵的创建2 可变大小矩阵的创建Simulink进行数据处理时经常需要在matlab function里面创建矩阵,但一不留神就会出现创建的矩阵维度错误的问题,有一些比较明显的错误根据提示就知道如何修改,但有一些不会给出明显的提示,如下面这个报错,错误认为input SFunction的输入维度无效,这种bug不可能会跑到底层的input SFunction下面去debug,只能在你的程序里解决。Error in port widths or dimensions. Invalid原创 2020-08-15 11:09:58 · 5069 阅读 · 3 评论 -
m脚本暂停、跳出、交互和终止的几个函数
整理一下记录几个常见的控制程序走停的函数pause、input、error、break、quit、exit、return。同时,m脚本可以实现对多个simulink模型仿真的控制,比如暂停、仿真一个步长、终止等等。这一点如果手动通过点击多个模型让它们仿真是做不到的,我刚开始还以为Simulink一次只能仿真一个模型呢。。。1、pause在执行脚本文件过程中可以让脚本暂停;用法:①pause:暂停,等待用户按下任意键继续;②pause(n):暂停n秒,然后继续。2、inputinput()也可原创 2020-08-14 20:52:27 · 2372 阅读 · 1 评论 -
Simulink仿真中如何实时存储多维矩阵
工作中会用到Simulink仿真实时存储多维矩阵的需求,我在网上看了很多文章,都没有很好地解决这个问题,也可以看出来很多人遇到过这个问题。注意:我们是想在实时仿真中存储数据,不是仿真结束后看数据,所以to workspace/to file这些方法是不行的。后续随着工作经验,可能会探索到其他的方法实时存储数据。目前想到两种方法,一种是利用delay、cnt做数据的延时存储和赋值;另一种也是这种思路,但是使用了persistent类型。方法1simulink模型如下,其中data是输入,y是输出,p是计原创 2020-08-14 14:59:37 · 5047 阅读 · 1 评论 -
GUI制作中控件的常用操作
GUI制作中控件的常用操作axes属性设置axes属性设置axes; axes('属性名','属性值',...)axes(h);h = axes(...) axes是生成绘图区的一个底层函数。因为很多高级(此高级非彼高级)绘图命令如plot会自动调用axes来生成绘图区。 axes; ——在当前窗口中生成一个默认设置的绘图区。如果没有窗口,则会...原创 2020-02-13 10:20:45 · 1132 阅读 · 0 评论 -
GUI制作信号分析的频域和时域分析
利用GUI制作信号分析的频域和时域分析的工具,界面和演示如下图:视频链接:源代码下载链接:原创 2020-02-13 09:54:47 · 3511 阅读 · 3 评论 -
利用GUI制作中学初等函数图像绘制器
以前高中的时候想过有没有什么工具能立刻画出函数图像,受于当时的知识限制,不知道matlab。前段时间看了点GUI,就想做一个工具,方便使用。工具界面如下图。制作的视频链接如下图:...原创 2020-02-12 16:19:01 · 1619 阅读 · 0 评论 -
MATLAB-GUI学习记录
文章目录GUI工具软件GUI使用心得GUI的学习,最关键的还是在应用。下面是平时利用GUI做过的工具软件,及GUI使用过程中的实践总结。GUI工具软件GUI制作传递函数响应分析工具GUI使用心得GUI制作中常用功能的操作...原创 2020-02-10 17:35:22 · 682 阅读 · 0 评论 -
matlab-GUI制作中常用功能的操作
文章目录“退出”功能“重置”功能GUI是一个很好的工具,可以制作一些工具软件以提高工作效率。GUI制作过程中有很多常用功能非常类似,如“退出”按钮、“重置”按钮等等,下面是学习和使用GUI过程中对常用功能的总结。“退出”功能退出功能一般是指软件或者GUI界面的关闭,常通过button按钮实现,直接在对应回调函数中写入close;即可。“重置”功能重置功能包含对用户输入对话框和软件默...原创 2020-02-10 17:14:38 · 1463 阅读 · 0 评论 -
利用matlab的GUI制作传递函数响应分析工具,并打包成EXE文件
文章目录step1:利用GUI制作传递函数分析工具:step2:GUI工具打包成可执行文件step1:利用GUI制作传递函数分析工具:step2:GUI工具打包成可执行文件最后一个问题就是生成可独立运行程序exe了。过程还是比较简单的。首先要设置编译器:在命令行窗口输入mbuild -setup和mex -setup选择编译器,注意如果没有编译器的话要安装。我这里遇到的一个问题是提示mbui...原创 2020-02-07 00:15:17 · 1256 阅读 · 0 评论 -
Matlab求解黎卡提方程
在稳定性分析中,我们会经常使用李雅普诺夫稳定性分析方法进行分析。并且在稳定性分析当中经常会出现两个方程,如下:(1)ATP+PA=−QATP+PA=−Q(2)ATP+PA−PBR−1BTP+Q=0ATP+PA−PBR−1BTP+Q=0其中第二个方程又称为黎卡提(Riccati)方程,在一般的线性系统当中经常会使用它来证明系统的渐近稳定。由于经常会用到上述两个方程的求解,并且每次都会忘记怎...原创 2019-11-30 11:42:08 · 11092 阅读 · 1 评论 -
提高Simulink仿真速度的多种方式,以及Accelerator模式解读
在基本模型具备的情况下,模型仿真的速度越快,算法的开发速度和效率就越高。在机器性能(CPU/内存/显卡等)一定的情况下,了解如何提高模型仿真速度,很有必要!现将网上整理的提高Simulink仿真速度的资料整理如下,有效性还未验证。根据仿真过程将其整理为以下几部分:模型仿真参数的设置(步长、求解器、仿真时间等)、模型模块的搭建、模型显示和输出设置。模型仿真参数的设置1...原创 2018-05-03 15:20:02 · 22598 阅读 · 4 评论 -
simulink过零检测的作用
变步长解算方法会动态地评估下一个采样时刻计算所使用的步长,当前后两个采样点的值变化大时,则缩小采样步长;反之,当前后两个采样点的值变化小时则增大步长。这种做法使得解算器在计算不连续临近区域时使用较小的步长,因为不连续点临近区域值的变化幅度大。这种做法能保证计算的精确度,但是却有可能导致采样过于密集步长过小而导致仿真时间太长。Simulink使用过零检测技术来精确定位不连续点,以免仿真时步长过小导致...原创 2018-07-29 08:26:23 · 9314 阅读 · 1 评论 -
simulink积分模块和微分模块区别
积分模块是微分方程的基本构建模块1、作用是将输入信号积分;2、需要初始化条件;3、连续状态,可通过求解器来控制仿真精度;微分模块决定信号的变化率1、根据输出返回的差值来拟合输入的变化的速率;2、不包含连续状态,所以无法控制仿真精度,不能用来建立ODE(常微分方程)。...原创 2018-07-29 08:15:52 · 17238 阅读 · 0 评论 -
Simulink 自动代码生成原理
如下图,Simulink模型会先变成一个文本式的 .rtw 模型描述文件,然后再变成 .c,.h,最后编译为最终目标文件。 典型的 Simulink 用户通常都是,用Simulink设计好算法后,做到生成源代码这一步。然后把生成的算法的.c .h 源代码拷贝到自己的工程目录下(比如 CCS或者CodeWarrior 或者 VC ),去做编译。 但是也有部分人希望把编译下载的工作也集成到...转载 2018-06-12 22:05:50 · 5286 阅读 · 0 评论 -
基于Simulink模型的嵌入式代码生成技术
simulink的c代码生成工具有3种:Embedded coder:自动生成嵌入式系统的C/C++代码Simulink coder:自动生成Simulink/Stateflow的C/C++代码Matlab coder:自动生成Matlab的C/C++代码下面是一个比较好的自动代码生成教学视频:simulink自动代码生成视频主要内容如下:1、使用simulink coder生成代码;2、使用em...原创 2018-05-22 16:29:20 · 9623 阅读 · 2 评论 -
Matlab中计算程序运行时间的三种方法
注意:三种方法由于使用原理不一样,得到结果可能有一定的差距!1、tic和toc组合(使用最多的)计算tic和toc之间那段程序之间的运行时间,它的经典格式为[plain] view plain copy tic 。。。。。。。。。。 toc 换句话说程序,程序遇到tic时Matlab自动开始计时,运行到toc时自动计算此时与最近一次tic之间的时间。这个有点拗...转载 2018-05-07 16:15:54 · 5605 阅读 · 0 评论 -
MATLAB工作空间变量的保存方法总结,非常实用!
对于工作空间中变量的保存和载入可以使用save和load命令,详细的使用方法通过help指令获取(help save,help load)。两条指令最常用的情况为:1、% 保存整个工作空间至指定的mat文件FILE_PATH_NAME,如E:\workspace.mat% 若已经存在同名的mat文件,该文件会被覆盖重写而不是追加save FILE_PATH_NAME例如:save ...原创 2018-09-18 19:18:26 · 23573 阅读 · 0 评论 -
Plot双y轴绘制常用代码
代码:%绘制双y图;x=0:0.001:5;figure('color',[1 1 1]); %将背景设置为白色[hAx,hLine1,hLine2]=plotyy(x,SRFlateral,x,Dy); %这里的SRFlateral,Dy是从simulink导出到workspace的变量title('The numerical changes of SRFlateral an...原创 2019-02-27 10:28:12 · 1226 阅读 · 0 评论 -
PreScan打开MATLAB时,“Error:Matlab ||和&&运算符的操作数必须能够转换为逻辑标量值”的解决方案
为了自己和他人学习的需要,建了一个PreScan的QQ群:613469333,加群前请私聊群主(QQ:2059799865)加入。群管理需要花费时间和精力,为了鼓励管理员和群成员积极互动,入群需交¥4.99的群费。在使用PreScan软件invoke MATLAB时,出现了标题所示问题:Error:Matlab ||和&&运算符的操作数必须能够转换为逻辑标量值搜索了相...原创 2019-03-13 12:57:23 · 8832 阅读 · 6 评论 -
matlab打开和生成使用.p文件和exe文件
首先,P文件为了保护知识产权设计的一种加密文件,是不能查看的。运行比较简单,和调用m文件方法一样。下面是一些解释。 P文件是对应M文件的一种预解析版本(preparsedversion)。因为当你第一次执行M文件时,Matlab需要将其解析(parse)一次(第一次执行后的已解析内容会放入内存作第二次执行时使用,即第二次执行时无需再解析),这无形中增加了执行时间。所以我们就预先作解...转载 2019-03-13 13:01:32 · 5768 阅读 · 0 评论 -
MATLAB函数——atan(x)和atan2(x)的区别
atan 和 atan2 都是求反正切函数,但参数数量和计算方法都有不同。atan2(a,b)是4象限反正切,它的取值不仅取决于正切值a/b,还取决于点 (b, a) 落入哪个象限当点(b, a) 落入第一象限时,atan2(a,b)的范围是 0 ~ pi/2; 当点(b, a) 落入第二象限时,atan2(a,b)的范围是 pi/2 ~ pi;当点(b, a) 落入第三象限时,ata...原创 2019-05-25 14:32:01 · 4336 阅读 · 2 评论 -
MATLAB图形的透视、镂空和裁切实例
透视MATLAB在采用默认设置画mesh图形时,对叠压在后面的图形采取了消隐措施,后面的图形会被遮住。但有时却需要透视效果。为此,有以下两个控制消隐效果的命令hidden off % 透视被叠压的图形hidden on %消隐被叠压的图形实例:%图形的透视>> [XO,YO,ZO]=sphere(30); %产生单位球面的三维坐标>> X=2*XO;原创 2018-01-01 12:56:34 · 4086 阅读 · 0 评论 -
MATLAB数据矩阵单位化,归一化,标准化
1.数据矩阵单位化方法一:[plain] view plain copy %%矩阵的列向量单位化%输出矩阵Y为单位化矩阵%方法即是矩阵中所有元素除以该元素所在列向量的二范数clc;clear;X=[7903977849129419271105204132976850371135133019251459275148794227...转载 2020-02-13 17:40:56 · 26068 阅读 · 2 评论 -
MATLAB常用求导和求偏导函数
matlab求导命令diff调用格式:diff(函数) , 求的一阶导数;diff(函数, n) ,求的n阶导数(n是具体整数);diff(函数,变量名),求对的偏导数;diff(函数, 变量名,n),求对的n阶偏导数;matlab求雅可比矩阵命令jacobian,调用格式:jacobian([函数;函数; 函数],[])给出矩阵: 方法/步骤: 1、diff(f(x)),一阶导数。 首先...转载 2018-03-28 15:51:40 · 199267 阅读 · 12 评论 -
matlab实现S函数的五种方式
Matlab允许你使用以下五种方式之一来实现S函数: A Level-1 M-file S-function provides a simple M interface to interact with a small portion of the S-function API. Level-2 M-file S-functions supersede Level-1 M-file S-f...翻译 2018-03-07 22:03:02 · 5495 阅读 · 0 评论 -
【数值计算】一元多值函数求极值——利用fminbnd和图形观察
一元多值函数求极值在实际科研中具有很重要的作用,其中求最大值和求最小值又有相似的地方,只要可以求出两者中的一者,对函数加一个负号就可以求出另一个最值。下面是一个利用fminbnd函数,结合图形观察得出最小值的人工求解方法。fminbnd函数的功能是求非线性函数极小值点,但注意求解的是某个区间内的其中一个极小值点,不一定会是该区间的最小值点。下面是fminbnd函数使用格式:[xmin,ym原创 2018-01-24 10:34:08 · 4594 阅读 · 0 评论 -
MATLAB中设置仿真参数和选择解法器
它主要用三个页面来管理仿真的参数。Solver页,它允许用户设置仿真的开始和结束时间,选择解法器,说明解法器参数及选择一些输出选项。Workspace I/O页,作用是管理模型从MATLAB工作空间的输入和对它的输出。Diagnostics页,允许用户选择Simulink在仿真中显示的警告信息的等级。1、Solver页此页可以进行的设置有:选择仿真开始和结束的时间;选择解法器,转载 2018-01-23 15:01:24 · 13069 阅读 · 1 评论 -
matlab三大数组之构架数组
构架数组(struct array )类似于胞元数组,能在一个数组里存放各类数据,而且构架数组组织数据的能力比胞元数组更富于变化。构架数组的基本组分是构架。数组中每个架构是平等的,它们通过下标区分。但是构架必须在划分“域”后才能使用。数据不能直接存放在构架中,而只能存放在域中。构架的域可以存放任何类型、任何大小的数组。而且,不同构架的同名域中可以存放不同的内容。注意:构架名和域名之间“.”原创 2018-01-23 00:58:06 · 2098 阅读 · 0 评论 -
matlab三大重要数组之胞元数组
胞元数组,顾名思义其基本组分是胞元(cell)。胞元数组如同银行里的保险箱柜一样,基本组分是胞元。每个胞元本身在数组中是平等的,它们只能以下标区分。同一个胞元数组中不同胞元可以存放不同类型和不同大小的数据,如任意维数值数组、字符串数组、符号对象等。注意区分胞元和胞元内容两个不同的概念。正因此,有了两种不同的操作。“胞元标识(cell indexing)”,例如A(2,3)是指A胞元数组原创 2018-01-23 00:33:55 · 2446 阅读 · 0 评论 -
matlab三大重要数组之字符串数组
字符串数组在matlab中尤其重要,很多字符串之间的连接通过简单的字符串操作就可以实现。字符串的创建方式:在命令窗口中,先把待建立的字符放在“单引号对”中,再按enter。注意,单引号对必须是英文状态下输入,单引号对的作用时matlab用来识别送来内容“身份”(是变量名、数字等)所必须的。实例1:数值量与字符串的区别>> a=12345.6789a = 1.2346e+04原创 2018-01-23 00:02:23 · 41434 阅读 · 1 评论 -
matlab的GUI简单实例——二阶系统的阶跃响应
GUI,Graphical User Interfaces,适合向别人提供某种新的设计分析工具,体现某种新的设计分析理念,进行某种技术、方法的演示,在这方面,图形化用户界面可能是最好的选择之一。下面是今日刚学的一个例子, 演示二阶系统G(s)=1/(s^2+2*θ*s+1)中阻尼比θ对单位阶跃响应的影响,制作如图所示的GUI。实例很简单,主要目的是通过这个简单的实例学习GUI的各个功能原创 2018-01-22 16:35:48 · 19195 阅读 · 1 评论 -
图像法解复杂函数零点——实例+ginput命令
复杂函数或者不易求解的函数有时通过代数方法不易直接求出答案,这时可以利用计算机的优点,通过图像法得出满足精度要求的答案。题目:采用图解法求解(x+2).^x=2代码如下:>> clear>> %采用图解法求解(x+2).^x=2>> x=0:0.001:1;>> y=(x+2).^x-2;>> plot(x,y) >> grid on >> %需要先把图像放大,再运行原创 2018-01-01 11:24:36 · 1411 阅读 · 0 评论 -
连续函数可视化实例——自变量排列对绘图的重要性
题目:绘制9边形,体会自变量排列对绘图的重要性以及如何画好多边形。代码如下:>> clear>> n=9;>> t=0:2*pi/n:2*pi;>> x=sin(t);y=cos(t);>> tt=reshape(t,2,(n+1)/2) %将t的10个数值排成2*5的二维数组 tt = 0 1.3963 2.7925 4.1888原创 2018-01-01 10:53:44 · 457 阅读 · 0 评论 -
连续函数可视化——连续调制波形y=sin(t)sin(9t)
本篇笔记接上篇连续函数的可视化,通过本例可以更深刻地理解连续函数可视化的思想。题目:连续函数可视化——连续调制波形y=sin(t)sin(9t)本例演示:增加图形“连续感”的两种方法;MATLAB具有自动线性插值绘制连续函数的能力;采样点数不够多会造成对所表现函数的误解。代码和注释如下: clear>> t1=(0:11)/11*pi; %过少的采样点>> t2=(0:4原创 2018-01-01 10:31:31 · 4957 阅读 · 0 评论