本站分享:AI、大数据、数据分析师培训认证考试,包括:Python培训Excel培训Matlab培训SPSS培训SAS培训R语言培训Hadoop培训Amos培训Stata培训Eviews培训

matlab中遇到的一些问题 (2)_matlab中的一些函数

matlab培训 cdadata 4343℃

matlab中遇到的一些问题 (2)

关键词:matlab中的一些函数

30).Matlab如何产生均匀分布的白噪声?
:#misc,2002/6/21,SMTH/MathTools #

         help rand    均匀分布百噪声
         help randn高斯分布百噪声
31).在Matlab中debug的时候能否跟踪变量的?
:#FangQ(Qianqian.Fang@dartmouth.edu),2002/6/21,BigGreen/MathTools #

         可以,如果使用medit,设置断点后可以用鼠标移到所看的变量上,显
         示当前的值,或者在命令窗口打该变量名直接回车。如果在代码中实
         现调试断点等功能,参
         见dbstop,dbcont,dbstep,dbclear,dbtype,dbstack,dbup,dbdown,dbstatus,
         dbquit
32).请问在Matlab中怎样输入特殊符号啊或者上标、下标?
:#FangQ(Qianqian.Fang@dartmouth.edu),southerner(笑着),2002/6/6,SMTH/MathTools#

         matlab的text/title/xlabel/ylabel对象支持简单的TeX排版语法,如希腊字
         母,上下标等例如
         text(0.5,0.5,’\alpha^\beta_2′);
33).Matlab中如何后台运行一个DOS程序?
:#FangQ(Qianqian.Fang@dartmouth.edu), 2002/6/4. BigGreen/en_Matlab#

         这里是一个后台执行一个需要外部输入的DOS命令的例子,需要的输
         入实事先都写在同目录下的input.txt文件中:

         dos(‘myexe < input.txt &’)
34).Matlab如何加载输入文件(批处理模式) ?
:#翻译自:comp.sys-soft.Matlab FAQ. BigGreen/en_Matlab#

         PC上可以使用matlab /r参数来在matlab启动的时候直接加载运行m文件
         ,在UNIX上,使用
         matlab < MyMFile > MyOutputFile
         来外部执行MyMFile,

         以上执行方式都可以通过脚本文件实现批处理
35).Matlab如何启动时执行规定的文件?
:#FangQ(Qianqian.Fang@dartmouth.edu), 2002/5/29.BigGreen/en_Matlab#
       
         参见上一个问题的回答
36).如何在Matlab GUI中使用图形背景?
:#FangQ(Qianqian.Fang@dartmouth.edu), 2002/5/29.BigGreen/en_Matlab#

         这是一个简单的例子:

         [A,map]=imread(‘yourimg.gif’);

         imagesc(A)
         colormap(map)
         set(gca,’position’,[0 0 1 1])
         axis off

         ax2=axes(‘position’,[0.2,0.2,0.6,0.6]);
         plot(rand(1,10),’parent’,ax2);   
         set(ax2,’color’,’none’)       
37).大量数据点Matlab绘图为什么很慢?
:#FangQ(Qianqian.Fang@dartmouth.edu), 2002/6/22.BigGreen/en_Matlab#

         1.首先看能否用已有函数对整个矩阵绘图,比
           如mesh/plot3/trimesh等
         2.如果必须一点一点/或者一条线一条线的添加,最好作如下
           设置:
           doublebuffer=on
           erasemode=none
           backingstore=off
           renderer=opengl
           以及参考MathWorks对于高速绘图的tips:
           http://www.mathworks.com/support/tech-notes/v5/1200/1203.shtml,
38).Matlab中如何求解广义积分?即积分限到有无穷的或者有奇异点的积分(瑕积分)?
:#FangQ(Qianqian.Fang@dartmouth.edu), 2002/6/22. BigGreen/en_Matlab#

         Matlab的quad/quad8只能作定积分,广义积分需要自己来写程序逼近,
         流程大概如下:
       
                 1.设定收敛限epsi
                 2.把为inf/-inf或者歧义点的积分限设置为一个初始值,k=1
                 3.计算定积分Q(k)
                 4.然后朝着inf/-inf或者歧义点移动一个步长,然后计算定积分
                   Q(k+1)
                 5.判断(abs(Q(k+1)-Q(k))
               
         Mathematica中可以使用NIntegrate[],对于无穷振荡的函数,可以使用Method->
         QuasiMonteCarlo或者Oscillatory]
39).为什么我的Matlab程序这么慢?
:#FangQ(Qianqian.Fang@dartmouth.edu), 2002/6/22. BigGreen/en_Matlab#

         我们工学院的收发室的门上贴着一张小纸条,写的是
         “Our policy is always blaming the computer”

         大多数的人在遇到问题的时候,总是责备计算机如何如何,别人如何
         如何,其实,最最主要的因素是在于自己。

         一个程序运行快慢,有很多因素决定,最主要的是算法,简炼而优美
         的的数学公式胜过100遍的优化。能从算法上改进,才能比别人有根
         本的优势。计算机也很重要,以前我总把自己用的PC看成万能的加
         以崇拜,对UNIX嗤之以鼻,结果当自己真正开始算起来,才知道差
         别有多大。搞大型数值计算的,没有好的工作站或者并行系统,就输
         在了起跑线上了。然后是程序的优化,看看变量是否占用太多内存,
         看看是否有功能重复的模块或者计算,经常的是用牺牲内存来换取速
         度,具体取舍,具体需要来决定。用profile看看哪些语句占用时间最
         多,然后把核心部分进行优化。

         如果是使用Matlab,使用vectorization和矩阵整体操作的代码要比大量
         的for循环快很多,eval/inline函数如果出现在核心循环,也会让速度下
         降几时倍的。
40)..Matlab中如何作非线性回归?
:#FangQ(Qianqian.Fang@dartmouth.edu), 2002/6/22. BigGreen/en_Matlab#

         请参考
         http://www.mathworks.com/support/solutions/data/10652.shtml
       
         matlab默认只提供了多项式拟合的函数polyfit,对于其他稍微简单
         一点的拟合,如标准的指数、对数、高阶多项式拟合,都有解析公式,参见:
         http://mathworld.wolfram.com/LeastSquaresFitting.html
         对于更加复杂的非线性函数,建议使用Mathematica或者DataFit
               
         Mathematica中提供了Fit[],以及
         << Statistics`NonlinearFit`
         NonlinearFit[],NonlinearRegress[]
         可以拟合任意复杂的表达式。
               
         DataFit可以自定义拟合模型,适用于复杂系统的拟合。
41)..Matlab中为什么我对m文件、simulink模块,mat文件的修改不起作用呢?
:hyphone,2002/7/6,SMTH/MathTools#

         检查Matlab路径中是否有与你的m文件、mdl文件或者mat文件同名的m文件、
         mdl文件或者mat文件。Matlab执行搜索到的第一个文件。

42).Matlab中,函数里面怎样使用基本工作空间中的变量?
为什么inline函数不能使用外面的变量?
:hyphone,2002/7/6,SMTH/MathTools#

         函数只能存取它自己的工作空间中的变量。要在函数之间,或者函数与基本
         工作空间之间传递数值,尝试以下方法:
         1、使用全局变量,用global定义全局变量
         2、使用evalin:
                 evalin(‘base’,’v=1;’);    %在基本工作空间中执行命令:v=1;
                 evalin(‘caller’,’v=1;’);%在调用该函数的函数的工作空间中
                         执行命令:v=1;
         3、参数传递
         4、使用assignin:
                 assignin(‘base’,’v’,v); %将v赋给基本工作空间中的变量v;
                 assignin(‘caller’,’v’,v);    %将v赋给调用者工作空间中的变量v;
         inline函数里面只能出现函数和参数,要传递一个可变系数,需要用evalin。
         如:fzero(‘f(evalin(”base”,”x1(i)”),x3)’,求解区间)
43).怎样在Simulink中调用m文件?
:hyphone,2002/7/6,SMTH/MathTools#

         函数m文件可以使用Function & Tables中的Fcn模块。如果有多个输入,
         用Mux组合成一个向量,然后在Fcn模块的Expression填
         MyFunction(u(1),u(2))”。如果有多个输出,用Demux分解成多个标量。
44).Matlab中怎样进行数制转换?
:hyphone,2002/7/6,SMTH/MathTools#
       
         参见:hex2dec,oct2dec,bin2dec,dec2bin,dec2oct,dec2hex.
45).matlab中的*.p是什么文件?怎么用?
:#David Martin(dg.martin@home.deleteme.com), 2000/07/07,comp.soft-sys.matlab#

         p文件是pre-parsed的缩写,即matlab在第一次运行某m文件时,matlab把该
         文件先编译成一种matlab的pseudo-code,当你再次运行该m文件时,节省了
         parse的时间。

         p文件可以离开m文件单独运行

:#Mike Robbins (michael.robbins@us.cibc.com),2001/04/20,comp.soft-sys.matlab#

         在matlab中用pcode(‘yourfilename’)来生成p文件
46).在Matlab中有goto语句吗?
:#FangQ(Qianqian.Fang@dartmouth.edu), 2002/7/23. BigGreen/en_Matlab#

         matlab中没有提供goto,因为结构化程序设计不推荐使用goto,但在matlab
         中,goto的功能可以部分用结构化的异常处理机制来实现,比如从多重循环
         中跳出,具体代码为:

         try
            for i=1:10
              for j=1:10
                    for k=1:10
                       do_something;
                           if(jump_condition)
                              errorid=-2;
                              error(‘I want to get out!’);
                           end
                     end
                   end
                 end
         catch
             fprintf(1,’catch error:%d’,errorid);
         end
47).请问matlab6.X的那个matlab server是做什么的?(matlab开机运行问题)
:#hairhead, 2002/4/3. SMTH/MathTools#

       如果你在安装matlab时选择了web server的话,在每次重新启动后系统
       进程中就会出现matlab/matlabserver两个进程,如果你不需要使用
       matlab webserver服务的话,建议在安装时不要选择web server,
       如果已经安装的话,可以在”控制面板->管理工具->服务”中找到
       matlab webserver,然后把它disable掉。
48).Matlab中如何用鼠标取得坐标?
:#FangQ(Qianqian.Fang@dartmouth.edu), 2002/11/19. BigGreen/en_Matlab#

       matlab中用ginput来取得图像上的一点。注意:image()/imagesc()对象
       的y轴是和一般图的y轴反的。

       如果复杂的话,可以在ButtonDownFcn中get(0,’PointerLocation’)
       或者get(gcf,’Position’);
49).Matlab中有阶乘函数吗?
:#FangQ(Qianqian.Fang@dartmouth.edu), 2002/7/23. BigGreen/en_Matlab#
   
       matlab没有提供直接的阶乘函数,但可以用prod(1:n)来求n!
       用prod(1:2:2n-1)或者prod(2:2:2n)来求解n!!
51)..Matlab如何计算大阶乘?
:#lll, 2002/9/18. SMTH/MathTools#
   
       如果只需要大致的值,取log10,
       计算出result=log10(1000!)=log10(1)+log10(2)+…log10(1000)
       然后求10^result=10^result的小数部分*10^result的整数部分
52)..Matlab中怎样求变上限二重积分?
:#hyphone,2002/9/22, SMTH/MathTools #

         对于解析函数,用两次int即可。
         如求x+y在0[返回]
53)..用符号积分算出来Ei是什么意思,怎样求值?
:#hyphone,2002/9/22, SMTH/MathTools #

         Ei是maple中的指数积分函数,表示exp(-x*t)/t^n对t从1到正无穷大的积分。
         Ei(n,x) = int(exp(-x*t)/t^n, t=1..infinity)
         用命令“mhelp Ei”可以查看详细说明;用符号计算得到的不明白的函数都可以通过
         mhelp命令得到帮助。
         求Ei(1,2)可以用maple命令得到:str2num(maple(‘evalf(Ei(1,2))’))。

54)..Maltab中使用\n换行在notepad中显示为小黑块,为什么?(Randy Poe)
:#Randy Poe,2002/10/21,comp.soft-sys.matlab#
:#Peter J. Acklam(pjacklam@online.no),2002/6/26,comp.soft-sys.matlab#         换行和回车是不同的,而且在不同的操作系统,解释也不相同。
         \n一般会操作系统被翻译成”行的结束”,即LF(Line-Feed)
         \r会被翻译成”回车”,即CR(Cariage-Return)
         对于文本文件的新行,在UNIX上,一般用\n(LF)来表示,Mac上用\r(CR)来表示,
         Windows上是用\n\r(CR-LF)来表示。
       
         所以在matlab中使用\n来写回车,在windows上打开会出现小方块。如果想
         避免这种情况,打开文件时使用t参数:
       
             fid = fopen(‘myfile.dat’,’wt’);
55)..Matlab中能开多大数组?(Steven Lord)
:#Steven Lord (slord@mathworks.com),2002-10-22,comp.soft-sys.matlab#

         使用computer命令:
         [C,MAXSIZE] = computer
56)..如何使用整型矩阵来节省内存?(Duane Hanselman)
:#Duane Hanselman (masteringmatlab@yahoo.com),2002/10/22,comp.soft-sys.matlab#

         如下方法无需先生成一个double的数组,然后转换为int8
       
         >> rc=[3 4] % row and column sizes
         >> a(prod(rc))=int8(0) % example using int8
         >> class(a)    % they are all int8s
         >> reshape(a,rc) % make it the size you want
       
         同时也可以使用repmat来实现上述功能:
             

         >> repmat(int8(0),rc)
57).Matlab在P4芯片上无法启动的解决方案
:#FangQ(Qianqian.Fang@dartmouth),2002/11/10,SMTH/MathTools#

         如果不想安装补丁,只能使用matlab -nojvm的形式启动
         matlab,否则需要参照如下页面的解决方案来安装补丁:
         http://groups.google.com/groups?hl=en&lr=&ie=UTF-8&oe=UTF-8&selm=
                NQ8a9.6835%24ob2.611653%40newsread1.prod.itd.earthlink.net
         http://www.mathworks.com/support/solutions/data/27293.shtml

===================================
58).如何求解对离散点的最优椭圆拟合?(Andrew Fitzgibbon, et al)
:#Authors: Andrew Fitzgibbon, Maurizio Pilu, Bob Fisher
“Direct Least Squares Fitting of Ellipses”, IEEE T-PAMI, 1999#

         http://bbs.dartmouth.edu/~fangq/MATH/Source/fitellipse.m
59).Matlab/Mathematica中如何中断当前运算?(FangQ)
:#FangQ(Qianqian.Fang@dartmouth),2002/11/19,BigGreen/MathTools#

         Mathematica中使用:     Alt+./Alt+,
         Matlab中使用:          Ctrl+C
60)).Matlab/Mathematica中如何检查括号匹配?(FangQ)

:#FangQ(Qianqian.Fang@dartmouth.edu),2002/11/11,SMTH/MathTools#

         Mathematica中使用:     Ctrl+.
         Matlab editor中使用: Ctrl+B
61)..Matlab的GUI中为何无法使用uicontrol的句柄?(FangQ)
:#FangQ(Qianqian.Fang@dartmouth.edu),2002/11/11,SMTH/MathTools#

         如果你在执行GUI时出现”handles not defined”的错误时,
         打开GUIDE,把figure的HandleVisibility设置为on或者callback,
         则你可以在各个callback中直接使用handles,而不用声明global
       
         例如:
       
         dat=get(handles.figure1,’userdata’);
         dat2=fliplr(dat);
         se(handles.edit1,’userdata’);
62)..Matlab中如何把向量拓展成矩阵?(Zealous/FangQ)
:#Zealous/FangQ,2002/11/9,SMTH/MathTools#

         可以使用repmat(),例如:    repmat([1,2,3]’,1,5)
         或者使用kron(),例如:        kron([1 2 3]’,ones(1,5))
63)..Matlab的GUI中的按钮如何在运行时移动及改变大小?(FangQ)
:#FangQ(Qianqian.Fang@dartmouth),2002/11/19,refer to comp.soft-sys.matlab#
         使用selectmoveresize函数,例如:
       
         figure
         h=uicontrol(‘style’,’pushbutton’);
         set(h,’ButtonDownFcn’,…
             ‘selectmoveresize;set(h,”selected”,”off”)’,…
             ‘Enable’,’inactive’)
64)..Matlab如何求解维数巨大的稀疏矩阵方程?(FangQ)
:#FangQ(Qianqian.Fang@dartmouth),2002/11/19,BigGreen/MathTools#

         Matlab提供了非常丰富的迭代型矩阵求解器,方法包括CG,BiCG,BiCGSTAB,
         CGS,GMRES,LSQR,MINRES,P-CG,QMR,SYMMLQ等,为了加快矩阵求解速度,还
         提供了两个Preconditioner函数:luinc(不完全LU分解),和cholinc(不完全
         Cholesky分解)。下面是一个使用GMRES求解方程Amat*x=rhs的一个简单例子:
       
         [L2,U2] = luinc(Amat,1e-3);
         tic
            x=gmres(Amat,rhs,[],1e-6,100,L2,U2);
         toc

在matlab中如何控制数据的输出格式?(完整总结)
sunooy 发表于 2006-6-30 11:19:00
http://www.blog.edu.cn/user2/sunooy/archives/2006/1392786.shtml

format
缺省时为默认短格式方式与format short相同

format short
短格式方式,显示5位定点十进制数。

format long
长格式方式,显示15位定点十进制数。

format short g
当数据大于1000或小于1时便会以科学记数法显示(-e),若想坚持用整数部分加小数部分的格式来显示,就要再后边加 g

format long g

format hex

十六进制格式方式。

format bank
银行格式。按元、角、分(小数点后具有两位)的固定格式。

format +
+格式,以+,—和空格分别表示中的正数,负数和零元素

format short   e

短格式e方式,显示5位浮点十进制数

format long    e
长格式e方式,显示15位浮点十进制数。

format rat
分数格式形式。用有理数逼近显示数据。如pi显示为355/113。

format loose
松散格式。数据之间有空行。

format compact
紧凑格式。数据之间无空行。

vpa(date,n)
将数据date以n位有效数字显示。

怎样改变matlab图形中的字体大小

在图形窗口,依次进入 edit /aexs properties / (X,Y,Z,style,lengedn,选择你要改变字体的对象)/font size 选择你要的字体大小就可以了。

转载网址:http://hi.baidu.com/davidhap/blog/item/8e63e2018b11d5d3267fb57b.html

1我有一组x,y,z值,非规则点阵,如何绘制曲面或者等高线或者插值?
:#FangQ(Qianqian.Fang@Dartmouth.Edu),2002/6/12, SMTH/MathTools #

        1.如果你使用matlab,有如下四种解决办法
          1.1:
                         tri=delaunay(x,y);
                         trimesh(tri,x,y,z); or trisurf(tri,x,y,z);
          1.2: 如果你想得到更加精细和光滑的曲线,而且想绘制coutour
                   则需要用griddata()插值:
                        [xi,yi]=meshgrid(min(x):dx:max(x),min(y):dy:max(y));

                         [zi,xi,yi]=griddata(x,y,z,xi,yi,’cubic’);
                         contourf(xi,yi,zi,20);
          1.3: 如果你的matlab安装有PDE Toolbox,可以使用pdeplot(),参见帮助
          1.4: 如果你可以连接国外,可以使用MIT的Kirill K. Pankratov写的SaGA
               工具箱,下载地址在:
        http://www.ai-geostats.org/software/Geostats_software/SAGA.htm
        http://globec.whoi.edu/software/saga/

        2.如果你使用Tecplot

          1.先将三列数据按照顺序保存在一个文本文件中
                data.dat文件格式为
                 x1 y1 z1
                 x2 y2 z2
                 …
          2. Tecplot菜单File\Load Data file,在左上角选择2D
          3. 选中zone,菜单Data\Triangulate
          4. 双击该zone,将mesh掩藏掉,把contour打开,然后在
                 左上角选择3D
          5. 如果想插值,先创建一个更细的网格,然后用data菜单中
                     Interpolation

        3.如果你使用Mathematica

          data={{x1,y1,z1},{x2,y2,z2},……};
          fun=Interpolation[data];
          Plot3D[fun[x,y],{x,xmin,xmax},{y,ymin,ymax}];
          ContourPlot[fun[x,y],{x,xmin,xmax},{y,ymin,ymax}];

        当然,其他还有很多绘图工具,有待补充
2请问哪里能找到绘制等高线的算法?
:#FangQ(Qianqian.Fang@Dartmouth.Edu),2002/7/23, SMTH/MathTools #

         在一般的计算机图形学的教材中都有常见算法的描述,下面的网址
                 有免费的C代码
                 http://members.bellatlantic.net/~vze2vrva/thesis.html

3特征值与奇异值有什么区别?
:#dimond,2002/6/25, SMTH/MathTools #

        特征值就不用说了,大家都知道。
        奇异值的定义:对于任一个复(实)矩阵A(m*n),设A^为A的共轭转置矩阵,
        即A^是n*m阶,则 A^*A (n*n阶)的特征值的非负平方根为 A 的奇异值,
        也就是A共有n个奇异值,且全部>=0.

        A^*A 是一个半正定矩阵,所以它的特征值>=0

        对于半正定的Hermit方阵而言,特征值与奇异值是一一对应的

4条件数很大(病态)的矩阵如何求逆?
:#granule,2002/7/4, SMTH/MathTools #

        有许多解法!实际上这作为数学的一个分支已经数学家
        们抽象出来研究了很多年(ill-posed problems).文献
        多的不得了。

        简单的解法就是用regularization tools.(典型的是
        Tikhonov regularization).还有许多迭代解法。

        基本思想是要加约束。

        for Ax=b, its standard Tikhonov solution is

        x=inv(trans(A)*A+alfa*I)*Trans(A)*b

        trans() means transpose; inv() is inverse;
        alfa is a positive sclar. The quality of solution
        depends on alfa directly. There is a optimal alfa

        You can refer to the relevant topics such as:
        inverse problems, ill-conditioned problems.

转载请注明:数据分析 » matlab中遇到的一些问题 (2)_matlab中的一些函数

喜欢 (1)or分享 (0)