
matlab
文章平均质量分 65
DFD1R
这个作者很懒,什么都没留下…
展开
-
matlab命令行调试程序的命令列表
命令列表如下,来自maltab2010 help文档的Simulink/User's Guide/Managing Blocks/Using the Embedded MATLAB Function Block/Debugging an Embedded MATLAB Function Block CommandDescriptionctrl-cQuit debugging and terminate simulation.dbcontContinue execution to next breakpoi原创 2011-03-10 16:11:00 · 3603 阅读 · 0 评论 -
关于字符串中单引号的嵌套问题和复合语句问题
今天学GUI编程是,碰到这样一条语句:push1=uicontrol(win,... 'Style','pushbutton',... 'Position',[50,200,100,30],... 'String','Plot sin(x)',... 'Callback',... [' subplot(axs);'... 'x=0:0.1:4*pi;'... 'y=sin(x);'... 'plot(x,y);'...原创 2011-03-29 22:19:00 · 3452 阅读 · 1 评论 -
GUI各种控件的t特征属性和意义
<br />转自 http://hi.baidu.com/dongdong2c/blog/item/68a886005251230a738da593.htmlGUI各种控件的t特征属性和意义2009-08-26 09:21GUI中为每一个控件都提供了相关属性,可是大家好像对某些属性不太重视哦,其实GUI中每一个属性都是会有它存在的价值的,只是我们没有发现而已<br /><br />下面我们讲解下GUI每个控件主要特征属性说明下,以便大家更好的使用GUI,毕竟是Matlab中的Visual Basic嘛<br转载 2011-03-29 22:38:00 · 2275 阅读 · 0 评论 -
char array和cell arrary
关于字符串矩阵,一直是一个令我十分困扰的问题。今天看了看cellstr的help文档,终于弄清其中的意义。关于x=[s1,s2,...,sn]的理解 该表达式把字符串s1,s2,...,sn的字符连接起来组成了一个字符串x,基本单元是character,例如:>> x=['hello','ok']x =hellook>> x(1)ans =h>> whos Name Size Bytes Class Attributes an原创 2011-04-01 21:18:00 · 1026 阅读 · 0 评论 -
guidata在子函数中的运用和handles结构体
今天自己编写GUI程序(GUIDE的help->Example GUIs中的An Address Book Reader例子时)发现了一个问题,在子函数check_and_load中guidata(handles.figure1,handles)好像并不能更新handles结构体。从而出现一些bug。这个bug在自带的源程序中同样存在。 bug如下: 假设在addrbook.mat中存储的四个联系人依次为: >> {Addresses.Name}ans = 'The Mat原创 2011-04-03 19:42:00 · 4748 阅读 · 0 评论 -
GUIDE创建的m文件中函数的执行顺序
一点个人随想 当进行多个GUI协同工作时,要用到uiwait和uiresume函数。此时,理解函数的执行顺序此时是很关键的。 首先理解uiwait和uiresume函数的作用。 uiwait函数:阻塞m文件的执行,直到uiresume解除这种阻塞; uiresume函数:解除uiwait函数对m文件的阻塞。 首先明确一点:回调函数(callback)应该不受uiwait的阻塞。(我自己从实践中猜想的) 这意味,虽然m文件的执行被阻塞,但并不会出现“按钮按下无反原创 2011-04-04 17:21:00 · 1770 阅读 · 0 评论 -
GUI间的数据传递机制
在GUI中传递数据有以下几种形式:1.输入与输出 一般guide创建的m文件的顶层函数的原型一般为:varargout = guide_toolpalette(varargin)。 其中varargin和varargout分别是变长度的输入输出列表。通过他们可以完成一些数据的传递:输入varargin可以将数据传递给新的GUIs,假如传递的是原GUI的figure句柄,那么通过 hand=guidata(h),其中h是传递过来的figure句柄,那么在新的GUI中就可以得到原来GUI的han原创 2011-04-04 21:54:00 · 2611 阅读 · 0 评论 -
save和load
<br /> 今天发现了一个关于save和load的有趣现象:对于一个向量y,save(...),然后data=load(...),结果data是一个具有一个fieldname ‘y'的结构体;如果只是写入load(...),则会在workspace生成向量y。对于其中的不同之处,以后要多加注意。<br /> 具体的验证如下:<br />>> y=[1 2 3];>> save('y.mat','y');>> data=load('y.mat');>> datadata =原创 2011-04-04 23:02:00 · 1626 阅读 · 0 评论 -
关于find_system的问题
问题描述: 在一个GUI的m文件里需要调用simname=find_system('Name','whole_system'); ,其中whole_system.mdl文件和该m文件在一个文件夹里,该语句的用意是结合后面的isempty语句来判断whole_system.mdl模型能否找到。然后问题出现了:若果我打开了whole_system.mdl文件,那么simname会返回{'whole_system'}(这是个cell array),即模型可以找到;如果我不打开whole_system.mdl文原创 2011-04-10 00:48:00 · 2009 阅读 · 0 评论 -
如何从fig图中恢复数据
今天同学想从将几个fig图中的曲线合并到一个图中,我想从原来的图中恢复数据,就可以plot到一个图了。如何恢复数据呢?谷歌了一下,发现帖子http://www.ilovematlab.cn/viewthread.php?tid=79256,试了一下,很有效。1、首先调用h = findobj(gca,Type,line)命令取得曲线的句柄;2、然后原创 2011-06-09 21:35:00 · 1114 阅读 · 0 评论 -
回调的运用
什么是回调(callback) 回调是一种matlab命令,它在某种事件(比如加载,删除和执行等)开始发生时执行。例如打开模型时,弹出一个对话框,表明模型的作者信息。 回调函数的类型 Simulink中回调可以应用于模型或者模型中的某一个模块。 打开模型,在Model或者Library,在菜单File->Mode Properties中的Callbacks标签可以查看和编辑应用于模型的Callbacks类型。原创 2011-03-26 21:49:00 · 4951 阅读 · 0 评论 -
关于函数句柄(@)的相关内容
函数句柄/function_handle(@)<br /> 句柄是一种间接调用函数的方式。<br /> 语法<br /> handle=@functionname<br /> handle=@(arglist)anonymous_function<br /> <br /> 描述<br /> 函数句柄(function handle)是一种能够提供函数间接调用的matlab value。你可以通过传递句柄来调用各种其他功能。你也可以将句柄存储到数据结构中备用(例如Handle Graphic 回翻译 2011-03-26 00:32:00 · 8000 阅读 · 2 评论 -
在矩阵索引时使用逻辑值(Using Logicals in Array Indexing)
<br /> 今天写程序时,发现这样一个提示:<br /><br /> 该提示说,利用logical indexing来代替find函数能够提高性能,于是在文档中查询了关于logical indexing的内容。<br /> <br /> logical indexing其实是用一个同样大小的逻辑矩阵来索引数据矩阵,逻辑矩阵中为“True”的位置被认为是数据矩阵中要索引的位置。<br /> <br /> 举个例子:<br />>> A = [1 2 3; 4 5 6; 7 8原创 2011-05-13 10:24:00 · 1647 阅读 · 1 评论 -
Embedded matlab function中参数parameter的设置问题
在embedded matlab function中,有四种类型数据(scope)与外界做交换:input、output、parameter和data store memory。input和output是输入与输出,对应于函数的输入与输出参数,容易理解。data store memory暂时不予考虑。这次谈谈parameter的设置问题。一.设置parameter的原因。 简而言之,设置parameter是为了能让embedded matlab function能够从其父已封装子系统的参数或者ma原创 2011-03-10 21:05:00 · 6660 阅读 · 0 评论 -
一个简单的embedded matlab function例子
所有的工作都是基于matlab 2010版本。一.对embedded matlab function的简要介绍 Embedded MATLAB Function模块位于Simulink/User-Defined Functions模块库中。该模块工作于matlab语言的一个子集(称为 embedded matlab subset,不在此子集的函数,需要用eml.extrinsic声明或采用feval才能使用,后面介绍),该模块能够提供高效的代码(编译后高效)。它适用于某些用文字语言比用图形语言方便的算原创 2011-03-10 22:45:00 · 12335 阅读 · 5 评论 -
simulink报错:Simulink报错”Memory allocation error“的相关分析
一.问题的引入 今天在调试模型时出现了该报错情况,具体情况如下图所示: 二.该问题的解决过程 1.逐个假如模块进行测试 这种方法比较费力,其实可以先划定一个有嫌疑造成问题的模块范围,将之移掉,再每次添加一个模块,无连接的输出连至Terminal模块,直到有问题的模块出现。 但试过之后发现,这种方法对现在出现得问题没有效果。你会发现:直到最后将Display模块(最后一个模块)添上后,就会出现该问题,但用Terminator模块代替Display模块,就不会出现问题。仔细检查,Display模块原创 2011-03-13 18:50:00 · 11611 阅读 · 0 评论 -
eml.extrinsic声明的作用域
通过阅读help文档,我总结的eml.extrinsic的作用域是:自eml.extrinsic声明处开始,到该函数结束,且不嵌套。例如,在如下代码中function y = foo eml.extrinsic('rat','min');[N D] = rat(pi);y = 0;y = min(N, D); 在foo函数的eml.extrinsic声明后,rat和min都被当做外部函数。另一种写法function y = foo eml.extrinsic('rat');[N D]原创 2011-03-11 14:43:00 · 2482 阅读 · 0 评论 -
Simulink中的tunable参数
<br />什么是tunable参数,什么是非tunable参数?这个问题困扰了许久,后来终于找到了一个解释。<br />来源http://wenku.baidu.com/view/6c1116c2d5bbfd0a795673dc.htmlSimulink绝大多数模块都有tunable参数,所谓tunable参数是指可以再仿真运行过程中修改的参数;这类参数值的修改不需要重新编译;tunable参数的修改将在下一个仿真步起作用;非tunable参数在仿真过程中不能修改,Simulink自带的模块中的非tuna原创 2011-03-17 16:22:00 · 2602 阅读 · 0 评论 -
用加窗法设计低通滤波器中遇到的问题
<br /> 今天犯了一个很低级的错误,但是不容易发现,在此做记录提醒自己。<br /> 低通滤波器的理想冲激响应是:<br /> hLP=sin(wc*n)/π/n<br /> <br /> 于是,我这样写了matlab程序:<br /> m=-256:256;<br /> wc=pi/4;<br /> hn=sin(wc*m)./(pi*m);<br /> win=hamming(513);<br /> b=hn.*win原创 2011-05-09 21:44:00 · 1316 阅读 · 0 评论 -
matlab中的几种乘法
<br />matlab中有几种乘法,其中有的常用,容易记住;有些则容易忘记,特在此记录。<br /> <br />首先,*(星号)是普通乘法符号,变种有 .*(点乘),这些很熟,不予多叙。<br />然后,^是幂运算符号,例如10^2=100,2^6=64;<br /> <br />最后介绍三个函数,prod、factorial和cumprod。prod(A)或者prod(A,dim)是求矩阵A中元素的乘积。>> a=prod(1:5)a = 120 ,该例子就是计算矩阵[1 2 3 4 5]原创 2011-05-12 22:25:00 · 20682 阅读 · 0 评论 -
simulink中模块库的建立和维护
一.模块库的建立与修改 模块库的建立与模型model的建立类似,都是在File菜单栏中,只不过要选择Library而非Model,如下图: 然后再该Library中添加了两个模块,并存为名为Interpolation.mdl文件。如下图:注意:当模块库被保存后,模块库就自动被锁定,模块库中的模块都无法修改,所以修改时需要Edit->Unlock Library来解锁方能修改。 二.模块库中建子模块库 此处的目的是在HiNOC模块库中建立Interpolation子模块库(上一步已经原创 2011-03-25 16:09:00 · 15007 阅读 · 0 评论 -
子系统的封装
子系统的封装的意义 子系统封装技术可以让一个子系统有自己的特点。封装后的子系统可以有自己的图标、自己的参数和具有功能描述的控制对话框,甚至自己的help文档,同时参数的修改更为方便(不用深入子系统,只需在对话框中修改便可),内部结构也不易被修改。 封装技术的简要介绍 封装是在Mask Editor中进行的。要打开Mask Editor,需要两步:①选中要封装的子系统;②选择菜单Edit->Edit Mask或者右键菜单中的Edit Mask。Mask Editor的样子如下:原创 2011-03-27 22:03:00 · 8593 阅读 · 2 评论 -
Simulink仿真命令的应用
在毕设的过程中,要用脚本动态的控制mdl模型的运行。在编写脚本的过程中,有几个命令特别常用(open_system,find_system,set_param,get_param和close_system),这里总结一下它们的用法。open_system该函数的形式很多,常用的有: open_system(sys)open_system(blk)op原创 2011-06-16 21:25:00 · 1964 阅读 · 0 评论