QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 13951|回复: 29
打印 上一主题 下一主题

[原创] [原创]自己总结收集的Matlab疑问和解答(每日更新)

[复制链接]
字体大小: 正常 放大
helen        

15

主题

4

听众

1807

积分

该用户从未签到

元老勋章

跳转到指定楼层
1#
发表于 2005-11-3 00:04 |只看该作者 |倒序浏览
|招呼Ta 关注Ta
首先,本人学习Matlab有一段时间,对与Matlab编程还算比较熟悉!
这些都是我个人在学习过程中遇到的一些疑问,最后自己寻找到了解决的方法!
期待和大家一起分享!!!我会定期地发一些这样的问答!!!!!!
(自己夸一下,其中的一些解决方法还是瞒有意思和创新的))
对与在Matlab学习中所遇到的疑问都可以在这里发布,大家一起讨论!!!!

问: Matlab仿真中怎样编辑Scope中的图象???
答: 实现的方法有以下的几种:
1)PrintScreen,然后粘贴到Windows位图编辑器,选择图像点击右键,选择“反色”即可;
2)在Scope中,它的参数设置的第二页,有一个Save Data to Workplace,将它选中,然后在下面的方框
中指定变量名,然后用plot命令画出;
3)直接在模型上再加一个,to Workplace模块,也用plot画出;
4) 等scope显示出来图像以后,在matlab上运行
set(0,'ShowHiddenHandles','On')
set(gcf,'menubar','figure')
这时候你会发现scope的工具栏的上面多了一行,点击insert-axes,鼠标会变成十字形状,然后再图像的任意一处双击左键出现一个对话框PropertyEditor,选中style在窗口的右便会出现color,这时你就可以任意修改背景颜色了。
[此贴子已经被作者于2005-11-3 0:10:50编辑过]
zan
转播转播0 分享淘帖0 分享分享0 收藏收藏0 支持支持0 反对反对0 微信微信
一颗沙里看出一个世界 一朵野花里有一座天堂 把无限放在你的手掌上 永恒在一刹那里收藏 --英国诗人布莱克《天真的预示》

0

主题

0

听众

16

积分

升级  11.58%

该用户从未签到

新人进步奖

回复

使用道具 举报

helen        

15

主题

4

听众

1807

积分

该用户从未签到

元老勋章

问: 怎样进行S-function的编程和使用???
答: S-function也就是System-function的缩写。说得简单,S-function就是用MATLAB所提供的模型不能完全满足用户,而提供给用户自己编写程序来满足自己要求模型的接口。要了解 S-function,必须了解以下知识:
(1)direct feedthrough
(2)dynamically sized inputs
(3)setting sample times and offsets
一.Direct feedthrough
direct feedthrough意思是说系统的输出或可变采样时间是否受到输入的控制。大家清楚有的系统是受到输入控制如:
y=k*u (u是输入,k是放大因子,y是输出)
而有的系统输出是不受到输入影响,如:
输出:y=x
dx=u ,x表示状态
二.Dynamically sized inputs
主要是给出:输入连续状态数目(size.NumContStates),离散状态数目(size.NumDiscStates)
,输出数目(size.NumOutputs),输入数目(size.NumInputs),Direct Feedthrough(size.Dir Feedthrough)。
三.Setting sample times and offsets
Setting smaple times and offsets主要设置采样时间
一颗沙里看出一个世界 一朵野花里有一座天堂 把无限放在你的手掌上 永恒在一刹那里收藏 --英国诗人布莱克《天真的预示》
回复

使用道具 举报

helen        

15

主题

4

听众

1807

积分

该用户从未签到

元老勋章

问: 在同一个M文件中,怎样实现参数的传递???
答: 在同一个M文件中传递参数的几种方式:
1): assignin(‘base’,’para’,para);
在后面的程序中,就可以直接调用了:
Para=evalin(‘base’,’para’) ;
2) :在当前的对象中;set(h0bject,’userdata’,[]) ;
Set(h0bject,’userdata’,para) ;
在后面的程序中就可以直接调用了:
Para=get(h0bject,’userdata’) ;
这里h0bject为某一对象的句柄
3);直接使用句柄,该方法最为简便而且安全性最高;
Handles.xxx=?????;
Guidata(h0bject,handles);
在后面的程序中,就可以直接调用
Handles.xxx=????
一颗沙里看出一个世界 一朵野花里有一座天堂 把无限放在你的手掌上 永恒在一刹那里收藏 --英国诗人布莱克《天真的预示》
回复

使用道具 举报

helen        

15

主题

4

听众

1807

积分

该用户从未签到

元老勋章

问: 怎么把Matlab中数组元素写入到文本文档中???

答: 下面是几个常用的函数:
(1)matGetNextMatrix:读取MAT文件中的下一个矩阵,调用格式如下:
integer*4 function matGetNextMatrix(mfp)
integer*4 mfp
说明:函数读取mfp所指向的MAT文件的下一个矩阵的数据并返回一个mxArray类型的指针。
(2)matGetDir:获得MAT文件中的所有矩阵目录,调用格式如下:
integer*4 function matGetDir(mfp,num)
integer*4 mfp,num
说明:函数从mfp指向的MAT文件中获取所有矩阵的目录。如果执行成功,将返回一个字符串指针数组,数组每个元素均为字符串指针,指向的字符串表示MAT文件中矩阵的目录。若函数执行失败,num返回为-1,并连接一个空指针。如果num为0,则表示MAT文件没有矩阵。
(3)mexErrMsgTxt:用于输出错误信息,并返回到MATLAB命令提示符下,调用格式如下:
subroutine mexErrMsgTxt(error_smg)
character*(*)error_msg
说明:error_smg为字符串常量,当程序执行后,在MATLAB窗口中显示错误信息error_smg,并终止程序运行。
(4)mxGetM、mxGetN:分别用来获取矩阵的行数和列数,调用格式相同,格式如下:
integer*4 function mxGetN(pm)
integer*4 pm
说明:pm为形式参数,指定一个矩阵,返回整数。
(5)mxIsNumeric:判断矩阵是否为数值类型矩阵,调用格式如下:
integer*4 function mxIsNumeric(pm)
integer*4 pm
(6)mxCreateFull:创建一个二维的未赋值的满矩阵,调用格式如下:
integer*4 function mxCreateFull(m,n,ComplexFlag)
integer*4 m,n,ComplexFlag
说明:m,n分别为创建矩阵的行数和列数。ComplexFlag为0表示创建实数类型矩阵,ComplexFlag为1表示创建复数类型矩阵。
(7)mxGetPr、mxGetPi:获得矩阵的实数或虚数部分,调用格式相同,如下:
integer*4 function mxGetPr(pm)
integer*4 pm
说明:如果函数执行成功则获得一个指向pm第一个实数部分的指针。
(8)mxCopyPtrToReal8、mxCopyReal8ToPtr:将某个矩阵的实数或虚数部分的数据复制到一个实数组中,后一个正好相反,调用格式如下:
subroutine mxCopyPtrToReal8(px,y,n)
integer*4 px,n
real*8 y(n)
subroutine mxCopyReal8ToPtr(y,px,n)
integer*4 px,n
real*8 y(n)
说明:px为指向某个矩阵的实数或虚数部分的指针,n为需要复制单元的个数,y为实数类型的数组。
一颗沙里看出一个世界 一朵野花里有一座天堂 把无限放在你的手掌上 永恒在一刹那里收藏 --英国诗人布莱克《天真的预示》
回复

使用道具 举报

helen        

15

主题

4

听众

1807

积分

该用户从未签到

元老勋章

回复

使用道具 举报

helen        

15

主题

4

听众

1807

积分

该用户从未签到

元老勋章

问: 在Matlab/Work文件夹中存在以后缀为.asv结尾的文件,起什么作用?

答: 没有任何作用,只是像Word一样备分文件,可以不保存这样的文件。操作如下:
在Matlab工作主窗口中,
file->preferences->editor/debugger-->auto save,uncheck "autosave on" checkbox
一颗沙里看出一个世界 一朵野花里有一座天堂 把无限放在你的手掌上 永恒在一刹那里收藏 --英国诗人布莱克《天真的预示》
回复

使用道具 举报

helen        

15

主题

4

听众

1807

积分

该用户从未签到

元老勋章

前一阵子同学装上的Matlab打开后的字都是模糊的!后来在水木清华的BBS中找到了解决的方法,帮助同学彻底解决了问题! 为什么会出现这样的情况呢???

引起matlab6.5字迹不清的原因有:
1、升级显卡。
2、安装的时候选择了matlab web server

解决的方法如下:

1、在控制面板-管理工具-服务 中取消 matlab server 的服务

2、安装的时候不选择 matlab web server, 其实matlab6.5干扰opengl是主要原因!只有采取上述方法,才可以做出三维图形,否则作不出!! 或者在画图的时候用opengl neverselect.

3. matlab6.5安装好,运行matlab后,会提示<matlabboot>\toolbox\rtw\targets\osek\osek的info.xml的<name>should end with <\name>,以及另外一个地方,也是这个工具箱下的,好像是demo中的那个info.xml文件中的<name>与<\name>没有匹配,也可能导致 command窗口中出现一大堆的警告什么的解决办法就是根据提示,用记事本打开那个info.xml文件,将<name>与<\name>匹配起来,保存这个info.xml文件,以后打开就不会再出现警告信息了。

4. 另外,好像没有选择恰当在字体也可能导致显示模糊 解决办法是在matalb是运行主界面的file菜单下的reference菜单项,在弹出的 窗口中进行适当的设置即可.
一颗沙里看出一个世界 一朵野花里有一座天堂 把无限放在你的手掌上 永恒在一刹那里收藏 --英国诗人布莱克《天真的预示》
回复

使用道具 举报

helen        

15

主题

4

听众

1807

积分

该用户从未签到

元老勋章

问: 在Matlab图形中怎样输入特殊符号???

答: 上标用 ^(指数) 下标用 _(下划线)

调用方式为:
^{任意字符}, _{任意字符}, 注意{}的使用!
希腊字母等特殊字符用 \加拼音 如:

α \alpha, β \beta , γ \gamma θ \theta Θ \Theta
Г \Gamma δ \delta Δ \Delta ξ \xi Ξ \Xi
η \elta ε \epsilong ζ \zeta μ \miu υ \nu τ \tau
λ \lamda Λ \Lamda π \pi Π \Pi σ \sigma Σ \Sigma
φ \phi Φ \Phi ψ \psi Ψ \Psi χ \chi ω \ommiga Ω \Ommiga
< \leq > \geq 不等于 \neq << \ll >> \gg
正负 \pm 左箭头 \leftarrow 右箭头 \rightarrow 上箭头 \uparrow

体会以下两例:
figure, title('\zeta^{-t}sint');
figure, title('x~{\chi}_{\alpha}^{2}(3)');
一颗沙里看出一个世界 一朵野花里有一座天堂 把无限放在你的手掌上 永恒在一刹那里收藏 --英国诗人布莱克《天真的预示》
回复

使用道具 举报

helen        

15

主题

4

听众

1807

积分

该用户从未签到

元老勋章

问: matlab里有关于集合运算和二进制数的运算的函数吗?

答: 进行集合运算的函数有如下的一些:
intersect:集合交集
ismember :是否集合中元素
setdiff :集合差集
setxor :集合异或(不在交集中的元素)
union :两个集合的并
unique :返回向量作为一个集合所有元素(去掉相同元素)

对于二进制数的处理运算函数有如下:

dec2bin(x) 是把十进制整数x变换为二进制
bin2dec(y) 是把二进制数y变换为十进制数
base2dec('x',a) 是把a进制数x变化为十进制数
dec2base(y,a) 是把十进制数y变化为a进制数

移位,循环,与,反等操作函数:
BITAND——对二进制数进行与操作;
BITOR——对二进制数进行或操作;
BITXOR——对二进制数进行异或操作;
BITSHIFT——对二进制数进行移位操作。

详细使用方法和其他函数可以参看help!!!!!
一颗沙里看出一个世界 一朵野花里有一座天堂 把无限放在你的手掌上 永恒在一刹那里收藏 --英国诗人布莱克《天真的预示》
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册地址

qq
收缩
  • 电话咨询

  • 04714969085
fastpost

关于我们| 联系我们| 诚征英才| 对外合作| 产品服务| QQ

手机版|Archiver| |繁體中文 手机客户端  

蒙公网安备 15010502000194号

Powered by Discuz! X2.5   © 2001-2013 数学建模网-数学中国 ( 蒙ICP备14002410号-3 蒙BBS备-0002号 )     论坛法律顾问:王兆丰

GMT+8, 2024-4-28 12:43 , Processed in 0.618356 second(s), 94 queries .

回顶部