问: 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: 函数的输出引数个数