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,这时你就可以任意修改背景颜色了。

问: 在同一个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=????

问: 怎么把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为实数类型的数组。

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

答: 没有任何作用,只是像Word一样备分文件,可以不保存这样的文件。操作如下:

在Matlab工作主窗口中,

file->preferences->editor/debugger-->auto

save,uncheck "autosave on" checkbox

引起matlab6.5字迹不清的原因有:

1、升级显卡。

2、安装的时候选择了matlab web server

解决的方法如下:

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

2、安装的时候不选择 matlab web server,

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

neverselect.

3.

matlab6.5安装好,运行matlab后,会提示\toolbox\rtw\targets\osek\osek的info.xml的should

end with

,以及另外一个地方,也是这个工具箱下的,好像是demo中的那个info.xml文件中的与没有匹配,也可能导致

command窗口中出现一大堆的警告什么的解决办法就是根据提示,用记事本打开那个info.xml文件,将与匹配起来,保存这个info.xml文件,以后打开就不会再出现警告信息了。

4. 另外,好像没有选择恰当在字体也可能导致显示模糊

解决办法是在matalb是运行主界面的file菜单下的reference菜单项,在弹出的 窗口中进行适当的设置即可.

问: 在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)');

问: 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——对二进制数进行移位操作。

问:怎样读入多个文件,并进行处理???

答:读入文件主要是文件名的问题。

比如,读入图象并显示:

for i=1:10

filename=strcat('XXXX',num2str(i),'.bmp');

%文件名分别是XXXX1,XXXX2等等;

x=imread(filename);

end

同样对于多个.mat文件载入并进行处理的程序段:

.mat文件分别是p1.mat, p2.mat, …, p100.mat

for i=1:100

s=sprintf('p%d.mat',i);

load(s);

s1=sprintf('p%d',i);

vars=evalin('base','who');

for i=1:size(vars,1)

if

strcmp(vars{i},s1)

data=evalin('base',vars{i});

end

end

%中间加入对data数据处理的程序;

end

MATLAB常用的基本数学函数

abs(x):纯量的绝对值或向量的长度 angle(z):复数z的相角(Phase angle)

sqrt(x):开平方

real(z):复数z的实部

imag(z):复数z的虚部

conj(z):复数z的共轭复数 round(x):四舍五入至最近整数 fix(x):无论正负,舍去小数至最近整数 floor(x):地板函数,即舍去正小数至最近整数 ceil(x):天花板函数,即加入正小数至最近整数 rat(x):将实数x化为分数表示 rats(x):将实数x化为多项分数展开 sign(x):符号函数 (Signum function)。 当x<0时,sign(x)=-1; 当x=0时,sign(x)=0; 当x>0时,sign(x)=1。

rem(x,y):求x除以y的馀数 gcd(x,y):整数x和y的最大公因数 lcm(x,y):整数x和y的最小公倍数 exp(x):自然指数 pow2(x):2的指数 log(x):以e为底的对数,即自然对数或 log2(x):以2为底的对数 log10(x):以10为底的对数

sin(x):正弦函数 cos(x):馀弦函数 tan(x):正切函数

asin(x):反正弦函数 acos(x):反馀弦函数 atan(x):反正切函数 atan2(x,y):四象限的反正切函数 sinh(x):超越正弦函数 cosh(x):超越馀弦函数 tanh(x):超越正切函数 asinh(x):反超越正弦函数 acosh(x):反超越馀弦函数 atanh(x):反超越正切函数

MATLAB常用到的永久常数:

i或j:基本虚数单位

eps:系统的浮点(Floating-point)精确度

inf:无限大, 例如1/0

nan或NaN:非数值(Not a number),例如0/0

pi:圆周率 p(= 3.1415926...)

realmax:系统所能表示的最大数值

realmin:系统所能表示的最小数值

nargin: 函数的输入引数个数

nargin: 函数的输出引数个数

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值