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

📄 matlab常见问题.txt

📁 matlab常见问题集,不错的资料哦,MATLAB初学者很有帮助
💻 TXT
📖 第 1 页 / 共 5 页
字号:
      如果已经安装的话,可以在"控制面板->管理工具->服务"中找到
      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的Windows版本matlab.exe不在matlab\bin下,而
        在matlab\bin\win32,所以,在安装matcom时,把bin\win32\matlab.exe
        移动到bin\,即上移一层目录,安装matcom后,再移动回去就可以了。

        其实是否安装有matlab对matcom没有什么影响,你完全可以选择没有
        安装matlab,仍然可以编译大多数文件。需要matlab\toolbox下的文件
        时,用addpath()添加路径或者拷贝到当前目录下就可以了。



===================================
7)使用MIDEVA在编译有些工具箱和simulink的程序时出错,请
问是什么原因?
:# techsoft (SoftMAN), 2000/4/2.SMTH/MathTools#

        目前MIDEVA/MATCOM仅是纯.M文件的开发平台(通俗地说
        是MATLAB的替代物),但MATLAB外,还有SIMULINK/STATEFLOW
        及其它TOOLBOX/BLOCKSET对于MIDEVA/MATCOM来说无
        法COMPILER,因为MIDEVA/MATCOM是JIT机制,它不能访
        问MATLAB的其它工具包尤其是它们的DLL库。要是其它工具包都是
        纯文本的.M文件那该多好啊!不过可用出自MATHWORKS的MATLAB 
        COMPILER。

8)如何将C语言变量转换为Mm?
:#FangQ(Qianqian.Fang@Dartmouth.Edu), 2002/7/23. SMTH/MathTools#

        仍然使用Mm的.r()函数或者.fastindex()函数,在本节2)中的例子
        中把赋值语句左右两侧互换即可。

        A.r(i,j)=(double)mydata[j][i];


>************************************************************************<
>                     第五节:Matlab与其他语言和软件的接口问题
>************************************************************************<

===================================
1)如何在Matlab中读取Excel的xls数据文件?
:#FangQ(Qianqian.Fang@Dartmouth.Edu), 2002/6/22. BigGreen/MathTools#

        使用xlsread()函数,或者使用excel的ActiveX接口来进行更复杂的操作,
        参见:
        http://www.mathworks.com/support/solutions/data/25179.shtml


===================================
2)如何在Excel中嵌入Matlab?
:#FangQ(Qianqian.Fang@Dartmouth.Edu), 2002/6/22.BigGreen/MathTools#


        如果你的Matlab安装有ExcelLink,它可以实现Excel与Matlab直接的数
        据交换,可以在Excel中直接调用matlab的函数,进行绘图或者数据处理。

        不过如果没有安装ExcelLink,你仍然可以使用Matlab的ActiveX接口来
        调用matlab,下面是一个Excel宏函数,作为例子:
 #Brett Shoelson(bshoelson@cox.rr.com),2001/11/01,comp.soft-sys.matlab#

        Sub CallMatlab()
        ' Dimension variables
        Dim MatLab As Object
        Dim Result
        Dim Invals(3, 4) As Double
        Dim MImag() As Double
        Dim i, j As Integer
        ' Invoke Matlab
        Set MatLab = CreateObject("Matlab.Application")
        ' Read Invals from current spreadsheet
        ' (Assume Invals stored in B3:E5)
        For i = 0 To 2
        For j = 0 To 3
        Invals(i, j) = ActiveSheet.Range(Cells(i+3,j+2),
          Cells(i+3,j+2)).Value
        Next j
        Next i
        ' Send Invals to Matlab
        Call MatLab.PutFullMatrix("a", "base", Invals, MImag)
        ' Send instructions to Matlab
        Result = MatLab.Execute("b=a.^2;")
        ' Retrieve Result
        Call MatLab.GetFullMatrix("b", "base", Invals, MImag)
        ' Store Result in B8:E10
        ActiveSheet.Range("B8:E10").Value = Invals
        End Sub


===================================
3)mcc,mex,mbuild都是作什么用的?
:#FangQ(Qianqian.Fang@Dartmouth.Edu), 2002/6/22.BigGreen/MathTools#


        这个问题我一直都不是很清楚,看过compiler的PDF帮助之后,知道个
        大概,也不知道说得对不对:

     mcc(生成c/cpp文件)-----m--mex------ mex/dll
                        |---x--mbuild-----C/C++ compiler----独立执行的程序

        mex文件是一种编译后的动态连接文件,需要在matlab中执行,优点
        是执行速度比m文件快,而且如果你不想提供m文件源码,可以使用
        编译后的mex/dll文件。

        mbuild通过调用外部的c/

⌨️ 快捷键说明

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