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

📄 mathfaq.txt

📁 matlab编程比较有用的电子书之一
💻 TXT
📖 第 1 页 / 共 5 页
字号:
  

        检查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/7/23. BigGreen/en_Matlab# 

  

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

      的y轴是和一般图的y轴反的。 

  

      如果复杂的话,可以在ButtonDownFcn中get(0,'PointerLocation') 

  

=================================== 

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!! 

  

=================================== 

50).怎样才能把Maltab学精? 

:#energy(长白山), 2002/9/23. SMTH/MathTools# 

  

      "带着问题学,活学活用,学用结合,急用先学,立竿见影, 

       在'用'字上狠下功夫。" 

  

=================================== 

51).Matlab如何计算大阶乘? 

:#lll, 2002/9/18. SMTH/MathTools# 

  

      如果只需要大致的值,取log10, 

      计算出result=log10(1000!)=log10(1)+log10(2)+...log10(1000) 

      然后求10^result=10^result的小数部分*10^result的整数部分 

  

  

>************************************************************************< 

>                        第三节:Mathematica的常见问题 

>************************************************************************< 

  

=================================== 

1)Mathematica 可以定义变量为实数么? 

:#FangQ(Qianqian.Fang@Dartmouth.Edu), 2002/6/22.BigGreen/en_Mathematica # 

  

        1. 在Simplify/FullSimplify可以使用\[Element],如 

                Simplify[Re[a+b*I],a\[Element]Reals] 

        2. 可以使用ComplexExpand[]来展开表达式,默认:符号均为实数: 

                Unprotect[Abs]; 

                Abs[x_] := Sqrt[Re[x]^2 + Im[x]^2]; 

                ComplexExpand[Abs[a + b*I], a] 

        3. 使用/:,对符号关联相应的转换规则 

                x /: Im[x] = 0; 

                x /: Re[x] = x; 

                y /: Im[y] = 0; 

                y /: Re[y] = y; 

                Re[x+y*I] 

  

  

  

=================================== 

2)Mathematica中如何中断运算? 

:#FangQ(Qianqian.Fang@Dartmouth.Edu), 2002/6/22.BigGreen/en_Mathematica# 

  

        Alt+. 直接终止当前执行的运算 

        Alt+, 询问是否终止或者继续 

        如果不能终止,用菜单Kernel\Quit Kernal\Local来退出当前运算 

  

  

=================================== 

3)请高手推荐Mathematica参考书 

:#FangQ(Qianqian.Fang@Dartmouth.Edu), 2002/6/22.BigGreen/en_Mathematica# 

  

        我迄今为止看到的最好的一本就是Mathematica自己带的帮助里面 

        的The Mathematica Book,内容全面,循序渐近,非常容易学习使用 

        。其他所见到的一些中文书籍基本上都是直接翻译帮助的内容,没有 

        什么新意。 

  

  

=================================== 

4)请问在Mathematica中如何画极坐标图? 

:#FangQ(Qianqian.Fang@Dartmouth.Edu), 2002/6/4. SMTH/MathTools # 

  

        << Graphics`Graphics` 

        PolarPlot[] 

        PolarListPlot[] 

  

  

=================================== 

5)Mathematica中如何对离散点作积分? 

:#FangQ(Qianqian.Fang@Dartmouth.Edu), 2002/5/9. SMTH/MathTools# 

  

  

        离散的点通过插值或者拟合就可以得到连续的函数,然后可以对该函 

        数求积分和微分。下面是一个例子: 

  

        f[x_] := NIntegrate[Sin[Cos[x]], {x, 0, a}]; 

        data = Table[{a, f[x]}, {a, 0, 10}]; 

        expr = Interpolation[data]; 

  

        Plot[expr[a], {a, 0, 10}]; 

        Plot[Evaluate[D[expr[a], a]], {a, 0, 10}] 

  

        如果想实现Matlab中的cumsum的功能: 

        Drop[FoldList[Plus, 0, {a1,a2,…,an}], 1] 

  

  

=================================== 

6)在Mathematica中创立palette? 

:#FangQ(Qianqian.Fang@Dartmouth.Edu), 2002/6/18. SMTH/MathTools# 

  

        在帮助中查找"Creating Palettes (Windows)" 

  

  

=================================== 

7)Mathematica可以作用户界面吗? 

:#FangQ(Qianqian.Fang@Dartmouth.Edu), 2002/5/31. SMTH/MathTools# 

  

        Mathematica的GUI设计是通过它的交互式的NoteBook实现的,可以参 

        考Mathematica帮助文件中的demo例子,或参考帮助2.10.6 

  

=================================== 

8)Mathematica中如何使用中文? 

:#FangQ(Qianqian.Fang@Dartmouth.Edu), 2002/7/23. BigGreen/en_Mathematica# 

  

        Mathematica3/4/4.1中如果使用中文,需要先选中所在的cell,或者选中 

        输入的中文乱码,在菜单format font中选中对应的中文字体后才能正确 

        显示。 

  

        最新的4.2在国际化有较大的改进,可以直接输入中文,参见 

        http://www.wolfram.com/products/mathematica/newin42/publishing.html 

  

  

  

>************************************************************************< 

>                        第四节:Matcom的常见问题 

>************************************************************************< 

  

=================================== 

1)什么是Matcom?它与Matirx/MIDEVA的关系是什么? 

:#FangQ(Qianqian.Fang@Dartmouth.Edu), 1999/11/2. SMTH/MathTools# 

  

        Matcom是MathTools公司(UPenn)开发的一个基于C++矩阵函数 

        库Matrix的一个matlab m文件与cpp文件的转换程序。MIDEVA为他 

        的一个集成调试编译环境(界面)。 

  

        Matcom独立于matlab之外,但需要外部的c++ compiler,在安装时需要 

        指定c++ compiler的未知,否则无法工作。安装的时候需要指定matlab 

        的位置主要是为了编译文件中需要的一些系统函数来找到路径用的。 

  

        现在MathTools公司已经被生产Matlab的MathWorks公司兼并,Matcom 

        最后版本为4.5,之后部分matcom的内容被合并到mathworks的visual 

        matlab中。 

  

  

=================================== 

2)如何取出matcom矩阵的元素的值并交给C语言变量? 

:#FangQ(Qianqian.Fang@Dartmouth.Edu), 1999/11/2. SMTH/MathTools# 

  

        double mydata[3][3]; 

        dMm(amatrix); 

        amatrix=rand(3); 

        for(int i=1;i<=3;i++) 

          for(int j=1;j<=3;j++) 

                mydata[i-1][j-1]=amatrix.r(i,j); 

        //or    mydata[i-1][j-1]=amatrix.fastindex(i,j); 

  

        也可以用memcpy() 把amatrix.pr指针的内容读出来,交给mydata,但行 

        列可能要转置。 

  

        如果amatrix=sparse(…),用amatrix.r()方法不能取出需要的值 

  

  

  

=================================== 

3)Matcom中有多个输出的函数在C++中应该怎么调用? 

:#FangQ(Qianqian.Fang@Dartmouth.Edu), 1999/11/2. SMTH/MathTools# 

  

        使用i_o作为分割符 

        meshgrid(colon(0.0,1.0),colon(0.0,1.0),i_o,xi,yi); 

        与matlab中的 

        [xi,yi]=meshgrid(0:1,0:1); 

  

        是等价的 

  

  

=================================== 

4)如何在VC或C++Builder中使用matcom数学库? 

:#FangQ(Qianqian.Fang@Dartmouth.Edu), 1999/11/2. SMTH/MathTools# 

  

        1.在Project\Add to project\选择\lib\v4500.lib 

        2.文件头写#include "matlib.h" 

        然后就可以用了 

  

  

=================================== 

5)使用了matcom4.5数学库的VC/C++Builder程序如何发布? 

:#FangQ(Qianqian.Fang@Dartmouth.Edu), 1999/11/2. SMTH/MathTools# 

  

        在VC/CB中调用了matcom库,通过编译生成独立执行的程序,所以, 

        不需要matlab系统,但一些必要的dll文件还是需要的,这 

        些dll在window\system\下面,(在4.5版本中)大概 

        有ago4500.dll,v4500v.dll,opengl32.dll,glu32.dll等 

        四个文件 

  

  

=================================== 

6)安装matcom在搜索matlab路径时说找不到matcom.m,怎么办? 

:#FangQ(Qianqian.Fang@Dartmouth.Edu), 2002/6/22. SMTH/MathTools# 

  

        原因是matlab 6.x

⌨️ 快捷键说明

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