一些有用的东东,希望大家喜欢.doc_第1页
一些有用的东东,希望大家喜欢.doc_第2页
一些有用的东东,希望大家喜欢.doc_第3页
一些有用的东东,希望大家喜欢.doc_第4页
一些有用的东东,希望大家喜欢.doc_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Q:如何将训练好的神经网络用于我的应用中?. A: sim 或者 gensim. answer:在m文件中使用sim,使用help network/sim察看使用方法。 如果供simulink模型中仿真用,请使用gensim生成网络模型,然后放入任何系统仿真模型中使用,并且还能够生成代码用于实时仿真。见下面的例子,使用gensim将神经网络变成Simulink模型。 net = newff(0 1,5 1); gensim(net); 然后可以使用RTW生成S-function目标。 q:能不能在Simulink的环境下,从PC 机的串口收发数据 我编写了一段C51单片机程序用于对电机进行控制,而一些控制参数我希望能够从 Simulink 通过 RS232 口发给 C51单片机,并通过 RS232 口得到 C51 的反馈信息。但XPC 的 RS232 模块好像不能用,是不是我对 XPC 的工作方式理解有误?请各位老师指导,谢谢! 步骤是这样的: 1.编写一个串口读写的m程序(可以参看帮助中的External Interfaces/API的部分,相当简单) 2.用S-fuctiion进行封装 3.加入到自己的simulink模型中去。 note:这样用m函数写的模块不能转化成C代码,要能转换 成C要用C-Sfunction写。 Q:再次请教崔老师,对于fopen语句如何读取多个文件,非常感谢,十万火急 k=menu(choose a file,E:tu石混填11bbb2-10-1.RTN,E:tu石混填11bbb2-10-1.RTN) switch k case 1,kname=E:tu石混填11bbb2-10-1.RTN case 2,kname=E:tu石混填11bbb2-10-2.RTN, otherwise disp(Error!) end kname fid=fopen(kname,rt); 但发现fid值为-1,读取失败,但如果 fid=fopen(E:tu石混填11bbb2-10-1则成功,薛老师如何用fopen语句实现读取多个文件,谢谢 A:假设打开3个文件分别是1、.txt 2、.txt 3、.txt for i=1:20 fid=feval(fopen,num2str(i),.txt,rt) end close(fid) Q:请教崔老师和其他各位老师对于fopen语句如何读取多个文件,非常感谢,十万火急 我编了一个菜单读入多个文件 k=menu(choose a file,E:tu石混填11bbb2-10-1.RTN,E:tu石混填11bbb2-10-1.RTN) switch k case 1,kname=E:tu石混填11bbb2-10-1.RTN case 2,kname=E:tu石混填11bbb2-10-2.RTN, otherwise disp(Error!) end kname fid=fopen(kname,rt); 但发现fid值为-1,读取失败,但如果 fid=fopen(E:tu石混填11bbb2-10-,薛老师如何用fopen语句实现读取多个文件,谢谢 A:fid=fopen(kname,rt)是否应为fid=fopen(kname,rt) 因为kname已经是字符串变量了,就不需要加引号了。 Q:关于常微分方程组的求解 如何用数值解法求解如下方程组: Dx1=-0.8*x1+0.3*x1*x2,Dx2=1.2*x1-0.6*x1*x2 初始解:x1(0)=2,x2(0)=1. 各位大虾,帮帮忙吧! 先谢谢了! A;首先生成一个包含下列代码的文件myfun.m: function dx = myfun(t,x) dx=-0.8*x(1)+0.3*x(1)*x(2); 1.2*x(1)-0.6*x(1)*x(2); 然后在MATLAB命令窗口输入命令(假定计算从0秒到50秒,2 1为初值): t,x=ode45(myfun,0 50,2 1); 就可以了。 Q:小波工具箱中waverec函数的问题 我有个问题想要请教各位,我对其中的多尺度一维小波重构函数waverec一直不太理解,用这个函数重构的小波系数,不管是哪个尺度上的低频或高频系数,得到的都是和采样信号相同的个数,比如采样信号是2000个,进行3尺度分解,则重构的第3尺度上的低频系数也是2000个,我试过了,不论哪个尺度的系数重构,都和原始采样信号一样的长度。而我用appcoef提取的第3尺度上的低频系数却是250个(因为进行了2抽取),为什么重构的系数却体现不出二抽取?而mallat算法重构系数是逐级2插补,我想知道重构的系数与分解的系数区别到底在什么地方?重构后的系数与分解的系数不相等,那还是小波变换系数吗? A:小波重构时可以通过两种途径:一种就是书上常见的采用小波系数插值后滤波实现。然后在一级一级的插值,滤波最后实现重构。而另外一种这是在不同的尺度上直接恢复成和原始信号一样的长度,然后直接相加就行了(这个步骤你可以看看matlab pdf文档中的Wavelets: A New Tool for Signal Analysis部分) Q:对一个64*64的矩阵中值滤波 对一个64*64的矩阵进行3*3的中值滤波 A:图象处理工具箱中有直接可以使用的函数:medfilt2 Q:如何将n*m矩阵转换成数组 如何将一个n*m的矩阵按照行数转换为数组,如 A=1 2;3 4转换成B=1 2 3 4? A:A=A B=A( Q:请问nargin,nargout,varargout这些函数的作用? A:这些内容是属于函数输入输出的参数类型,可以算是宏,其含义为输入输出参数的个数和可变输入参数数组,用于灵活的定制输入输出参数个数;nargin,nargout是对m文件的输入输出的变量个数进行检查,而varnargout是m文件的输出行参。 Q:请教如何将mdl文件转化为C mex 的S-fuction文件 A:使用RTW Q:请问编程时,什么时候用eval函数?调用的字符串什么情况下加单(双)引号? 什么时候用eval函数?什么时候直接执行字符串命令?调用的字符串什么情况下加单(双)引号? A:当把函数名或变量名作为字符串方式处理时有用。由于单引号已经作为字符串的分界符,当在字符串使用单引号时,需要再加一个单引号以示区分。双引号与一般字符一样对待。 Q:神经网络训练完毕之后,如何讲权值、域值保存? A:应用命令gensim(net)就可以生成,保存下来以备下次使用。权重和域值都在里面,可以点击开并修改。 Q:请教能否将.m文件转变为.exe可执行文件? A:使用mcc就可以,例如mcc -P *.m 具体的使用参阅Matlab的帮助文档 Q:函数load的问题 我用uigetfile得到了一个路径和文件名,文件是一个.mat文件, 然后我想用load 文件名的形式,把它装入工作空间,但是matlab显然不支持这种操作。load 好象一定得是具体的文件名,而不是变量。 请问,我怎么样编写程序可以避免或者解决这个问题? 我想可能跟符号变量有关系,但是试了以后,发现我还是解决不了。 A:load data.mat; 与 load(data.mat); 效果是一样的。 或者使用eval也可以,比如 eval(load data.mat); 所以,如果你的文件名已经存储在字符串filename中, 那么可以使用 load(filename) 或者 eval(load filename); 打开文件。 Q:两个关于界面设计的问题 我还有两个问题.我花了一天都没能解决. 1.我在主窗口A中用data,a=fscnaf(fid,%s,m n )打开了一个文件,但是我想用另一个定义好的窗口B(用matlab6.0l里的guide定义)里的listbox或者edit显示出来.但是我发现我怎么也没有办法把data传递到listbox或者edit,请问我应该怎么样才能实现上述功能? 2.我用纯粹的语句行产生窗口B,用这个办法打开文本文件后,它显示的东西的格式跟实际的格式不一致,没有空格和回车,这是怎么回事? A:1.你是否使用了global来定义全局变量,以用于传递,在matlab中,设置uicontrol(控件)的属性,都是用到set命令,不止你是否用到,在这里应该是设置edit的String属性吧! 2.在A中打开B,只要在A对应的事件下,写B 就可以了!(好像没看懂你的第二个问题) % get handle of listbox or edit of figure B , % and : set(ListboxHandle, String, Data ) ; Q:simulink中的模块参数seed是什么意思?许多模块中都要求输入seed值,有何含义?应如何确定该值? A:可以输入任意整数。由于实际上的随机数生成大多为伪随机序列,如果输入同样的seed将产生相同的随机序列,需要输入不同的seed以产生不同的随机序列。 Q:谢谢指点! 我用指令的方式写如下语句: rand(seed,12345); a=rand(1,10); b=rand(1,10); 发现a,b仍然不同,可重复的噪声的含义是什么?上述产生噪声的方法是否正确?如否,该如何利用seed通过指令来产生可重复的噪声。 A:MATLAB中,随机数是递进生成的。 也就是说: rand(seed,12345); a=rand(1,10); b=rand(1,10); 与 rand(seed,12345); tmp=rand(1,20); a=tmp(1:10); b=tmp(11:20); 效果是一样的。 如果想要生成重复的随机序列,那么就重新设定种子,比如 rand(seed,12345); a=rand(1,10); rand(seed,12345); b=rand(1,10); Q:能否实时采集外界信号 simulink能够实时采集wave device的信号,但是不知道能不能实时采集其他设备(比如A/D采样板)的信号,还是需要写上一段程序将采样板的信号读入。如果能,该怎么处理,实时性如何?希望各位大侠指点。 A:Simulink提供的S-function功能应当能够满足你与外界硬件接口的需要。关键是写出与硬件相关的驱动,由于S-function 是通过C编写的,可以调用操作系统以及硬件的相关编程资源,技术上应当不成问题。 关于实时性无法保证,因为Simulink环境以及相应的PC都不是一个实时环境。确保实时性,必须采用具备实时内核的实时操作系统,或实时仿真系统。MathWorks提供了两个应用于实时的产品,一个是xpc,另外一个是Real-Time Window Target. 这两个产品都带有相当部分的硬件驱动部分,支持一些主要的硬件借口卡。如果你使用的板卡不在支持之列的话,你依旧需要自己去编写相应的驱动部分。 Q:我用simulink的power system blockset仿真一个小系统,需要产生一个频率和相角都是变量的正弦信号。不知那位高手能指点在下一下,我所需要的频率和相角都是由另外的模块输入。频率是由Power System Blockset的Machines Measurement Delux 输出的。相角也是测量到的,由Fourier模块输出。我想利用这两个输出量做成一个正弦电压源,不知道能不能做? 谢谢您的帮助。 A:如果你需要做一个交流电压源的话,有一个办法。你把Simulink/PowerSystem中的AC Voltage Source用Look Under Mask方式打开,就会发现驱动源是一个正弦信号发生器。用一个可调频率相位的C-Mex S-function替换掉这一部分就可以了 Q: Vc中如何调用Matlab的绘图函数? A:通常MATLAB不赞成直接在外部环境中调用MATLAB API函数,特别是绘图函数。如果你确实想这么做,不妨读一下libsgl.h 这个头文件,图形API都在这里面。函数调用之前,要初始化一下图形引擎。 Q:请问如何产生动态时间间隔的脉冲?在simulink中,pulse generator的参数periods一旦确定,那么 脉冲的时间间隔就固定下来了。怎么样才能动态的修改periods参数呢? 或者有没有其他的模块能实现动态时间间隔的脉冲?请高手指点! A:先是采用三角函数块生成变频率的正弦信号,然后再用逻辑运算符(信号大于零时输出1,小于零时输出0)生成变间隔的脉冲。 这只是作为一个提示。 Q:曲面拟和的问题 matlab里可用一个二维矩阵表示一个曲面上的点,如zpeaks 得到的z矩阵 那么,如果我只知道z中的少数点的值,用什么函数来得到类似zpeaks的矩阵 谢谢了 A:参考MATLAB Graphics手册中3-D Visualization中的Surface Plots of Nonuniformly Sampled Data中所做的: Z = griddata(x,y,z,X,Y,cubic); 查查griddata的用法。 Q:我要用SIMULINK做一个模块,需输入16进制数怎末办,我输入的参数和输出的参数都是16进制数怎末办? A:在Simulink/Signals&Systems下面有一个“Data Type Conversion”模块可以用来转换成INT16 Q:是不是可以用S-函数将m文件与SIMULINK连接?是不是可以用S-函数将m文件与SIMULINK连接?SIMULINK可以转换成m文件吗? A:利用m文件的S-function就可以把m函数与Simulink相连,Simulink原则上不能转化成m形式。但视你的应用可能有一些变通的方式。 Q:什么是RTW和MATLAB COMPILE编译模型您能解释一下:RTW和COMPILE编译模型吗? 也就是他们的概念?我怎样操作?需要什么MATLAB的附件? 尽量详细一点? A:RTW和Compiler都是MATLAB的模块,也就是说如果要使用这两个功能,就必须安装这两个模块。 RTW的功能是把Simulink模型翻译成针对不同目标机的C语言,从而可以进行某些实时应用; Compiler是把m函数翻译成C语言或者可执行文件,主要是做一些非实时的应用。比如充分利用MATLAB算法开发的优势和强大的绘图功能解决在一个大Project中实现核心算法 Q:matlab 如何读mdb数据库 A:作用Database Toobox工具箱,MATLAB可以通过ODBC/JDBC与Access,Informix,SQL等关系数据库进行实时双向通信,Database Tbx更提供GUI工具方便用户不用自行编写SQL语言来使用,不过Database Tbx的性能有待下一版本R13中改进,如支持中文的性能等。 除了MathWorks的商业软件Database Tbx外,还有一些功能简明的FREE版本,如国内的DBTOOL,(/matlab/dbtool.htm) 国外的QUVERYTOOL等。 A:需要有Database toolbox.在 Using the Database Toolbox中有详细说明。使用时有两种方式,一个是交互式的使用,通过Visual Query Builder,文档中对如何操作有详细说明。另外一个是通过调用函数的方式,不直观,但适合用于编程。 Q;如何从仿真模块生成S函数 A:生成S-function Target是十分简单的,特别是在MATLAB 6中,S-function

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论