⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 matlab常见问题.txt

📁 matlab常见问题集,不错的资料哦,MATLAB初学者很有帮助
💻 TXT
📖 第 1 页 / 共 5 页
字号:
                  ,不会显示图片内容,但可以打印,word XP即可显示,又可打印。

                5.如果不满意,可以在word中双击编辑,如果安装有Adobe 
                  Illustrator等矢量图像编辑软件,也可以进行编辑。



===================================
25)请问可以查看Matlab中函数的源代码吗?
:#FangQ(Qianqian.Fang@Dartmouth.Edu),2002/6/21,BigGreen/MathTools #


        Matlab除了buildin函数和mex/dll文件看不到原码,其他如工具箱等都可
        以直接看到代码,首先确认该文件安装在matlab中,即which 
        filename.m存在,然后可以edit filename.m


===================================
26)Matlab有没有求矩阵行数/列数/维数的函数?
:#FangQ(Qianqian.Fang@Dartmouth.Edu),2002/6/21,BigGreen/MathTools #


        ndims(A)返回A的维数
        size(A)返回A各个维的最大元素个数
        length(A)返回max(size(A))
        [m,n]=size(A)如果A是二维数组,返回行数和列数
        nnz(A)返回A中非0元素的个数


===================================
27)Matlab中如何中断运算?
:#FangQ(Qianqian.Fang@Dartmouth.Edu),2002/6/21,BigGreen/MathTools #


        在命令窗口按Ctrl+C,在UNIX/LINUX会立即中断运算,在Windows可
        能由于操作系统的原因,有时会出现死机和等待的情况。


===================================
28)Matlab中有没有画圆或椭圆的函数?
:#FangQ(Qianqian.Fang@Dartmouth.Edu),2002/6/21,BigGreen/MathTools #


        没有,Matlab没有提供直接绘圆的图元函数,需要自己写代码,其实
        就两句:
        sita=0:pi/20:2*pi;
        plot(r*cos(sita),r*sin(sita)); %半径为r的圆

        plot(a*cos(sita+fi),b *sin(sita+fi)); %椭圆

        如果是单位圆,可以使用rectangle('Curvature', [1 1])


===================================
29)Matlab下如何定义整形
:#修改:fhorse (马不停蹄),2002/6/21,SMTH/MathTools #

        Matlab默认的矩阵数据结构都是双精度浮点型,即64位来表示一个数
        字,大多数的函数和操作都定义在double数据结构,如果你需要
        把double的数据转换为整形,然后再参与运算,需要使用
        double(int32(x))或者floor/round/ceil等函数

        如果为了节省内存,只进行赋值、打印等简单操作,可以参
        见uint8/uint16/uint32命令的帮助


===================================
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)) 
        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,

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -