matlab 和mathematica哪个更有用

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了matlab 和mathematica哪个更有用相关的知识,希望对你有一定的参考价值。

传统的说法是matlab擅长数值运算,尤其是矩阵数值运算,而mathematica擅长符号运算;此外matlab似乎是被国内的大家认识得更早,所以用的人疑似更多。
但是,就我个人暑假以来的使用经验来说,这些传统的说法不见得对。我在尝试解一个偏微分方程组的数值解,因此同时接触了这两个软件,并且也分别请教了一些会用这两个软件的人。现在的调查结果是,matlab的解偏微分功能很渣,号称有解相关问题的工具箱(对,工具箱,这是许多人力挺matlab的理由之一),只能解非常简单的偏微分方程,而据说功能更强的相关指令,要求手动把方程要化成标准形式——把偏微分方程化成标准形式谈何容易!?而mathematica,相关求解格式就要简单的多,虽然也经过了一些波折,但最后四处求助之后,好歹勉强把我所要解的问题给解出来了。
现在,我对这一问题的认识是,所谓的软件的区别,恐怕也只是对我们入门用户而言的,如果真的熟练,只怕两个软件能做到的事的差别并不会有多大。我选择了mathematica,因为他的语句和传统数学式非常相近,符号计算的强大更是matlab所不具备的,至于数值计算,你有兴趣可以搜搜,截止目前我没有见过任何能说明mathematica的数值计算能力逊于matlab的证据,而且我个人恐怕是不会有什么要求高效率计算的程序需要运行的,所以mathematica对我来说足够了。
另外,mathematica8有全中文自带帮助文档,十分适合自学,这也是我选择它的理由。

参考资料:http://zhidao.baidu.com/question/468813625.html?oldq=1

参考技术A 在数学计算方面,MATHEMATICA要好于MATLAB,在数字信号处理领域,MATLAB功能要强于MATHEMATICA
MATHEMATICA是一款科学计算软件,很好地结合了数值和符号计算引擎、图形系统、编程语言、文本系统、和与其他应用程序的高级连接。很多功能在相应领域内处于世界领先地位,它也是使用最广泛的数学软件之一。Mathematica的发布标志着现代科技计算的开始。Mathematica是世界上通用计算系统中最强大的系统。自从1988发布以来,它已经对如何在科技和其它领域运用计算机产生了深刻的影响。
MATLAB是美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MATLAB和Simulink两大部分。MATLAB是matrix&laboratory两个词的组合,意为矩阵工厂(矩阵实验室)。是由美国mathworks公司发布的主要面对科学计算、可视化以及交互式程序设计的高科技计算环境。它将数值分析、矩阵计算、科学数据可视化以及非线性动态系统的建模和仿真等诸多强大功能集成在一个易于使用的视窗环境中,为科学研究、工程设计以及必须进行有效数值计算的众多科学领域提供了一种全面的解决方案,并在很大程度上摆脱了传统非交互式程序设计语言(如C、Fortran)的编辑模式,代表了当今国际科学计算软件的先进水平。
MATLAB和Mathematica、Maple并称为三大数学软件。
参考技术B Mathematⅰca的输入方式更接通常的书面数学语言,对初学者来说很容易上手。普通人可作为科学计算器使用;科学工作者又可以做为强大数学软件使用。数值计算、符号计算、绘图、编写程序的能力均很强大。Matlab软件当然也很厉害。实际上你先接触哪个软件就认为哪个好,熟悉了用起来顺手当然就好。 参考技术C matlab在系统的仿真方面更有优势,mathematica则在数学方面有特长,符号运算和作图,感觉都比matlab强,界面也觉得比较友好。
总得来说,matlab综合能力比较出色,应用范围较广

在 Mathematica 7 中取消/注释掉代码的键盘快捷键?

【中文标题】在 Mathematica 7 中取消/注释掉代码的键盘快捷键?【英文标题】:Keyboard shortcut to Un/Comment out code in Mathematica 7? 【发布时间】:2011-08-02 01:37:57 【问题描述】:

注释/取消注释一段代码的键盘快捷键在 Java、.Net 等语言的其他编程 IDE 中很常见。我发现这是一种非常有用的技术,可以通过反复试验来临时注释掉和取消注释行、单词和部分代码以找出什么是有效的,什么是无效的。

我在版本 7 的 Mathematica 前端找不到任何这样的键盘快捷键。我知道可以通过选择代码、鼠标右键单击并从出现的菜单中选择 Un/Comment 来注释掉代码,但这是编码时太慢了。

我尝试使用键盘上的menu key Menu 访问此键,但 Mathematica 前端不像其他应用程序那样响应或识别此键,这可能允许使用组合键进行评论。其他人可以验证这不是我的机器独有的,并且mathematica 无法识别密钥。我查看了question 并查看了 KeyEventTranslations.tr 文件,但我认为没有任何方法可以创建快捷方式来执行此操作(?)。我应该忍受它吗?

还有其他建议吗?

(我看到有一个 Emacs 版本的 mathematica,我从未尝试过 Emacs 或这个 Mma 版本,并想象它会有这种能力,但不想去麻烦和安装它的不确定性。我也想猜测 Wolfram Workbench 可以做到这一点,但这可能不值得为此投资。)

【问题讨论】:

【参考方案1】:

如果您愿意编辑 Mathematica 系统文件MenuSetup.tr,您可以在 Mathematica 7.0.x 中安装快捷方式。您可以在与KeyEventTranslations.tr 文件相同的位置找到它(即在“SystemFiles/FrontEnd/TextResources/platform”下的安装中)。在MenuSetup.tr 中,在Edit 菜单的定义下找到以下行:

MenuItem["Check &Balance", "Balance", MenuKey["B", Modifiers->"Control", "Shift"]],

在该行的正下方,插入以下内容:

MenuItem["Un/C&omment Selection", KernelExecute[FE`toggleComment[]], MenuKey["/", Modifiers->"Command"], MenuEvaluator -> Automatic, Method -> "Queued"],

Un/Comment Selection 命令现在可以在 Edit 菜单下使用,键盘快捷键 Cmd-/ kbd> 或 Alt-/ 取决于您的平台——就像在 Mathematica 8 中预安装了此命令一样。

请阅读有关破解 Mathematica 安装文件的常见免责声明 - 不提供任何保证 :)

我不知道有什么方法可以将此功能映射到一些涉及 Menu 键的快捷方式。

快捷键,无菜单

前面的步骤通过安装一个新的菜单项来模拟 Mathematica 8 所做的事情。如果您希望保持菜单不变,则可以在KeyEventTranslations.tr 中安装快捷方式。添加以下行:

Item[KeyEvent["/", Modifiers->Command], KernelExecute[ToExpression["FE`toggleComment[]"]], MenuEvaluator -> Automatic, Method -> "Queued"]

如果该行不是列表中的最后一项,则需要在该行末尾添加一个逗号。

【讨论】:

这是有道理的。另外,你能解释一下为什么这可以从MenuSetup.tr 而不是KeyEventTranslations.tr 完成吗? +1 这对我有用。对于其他尝试它的人,您需要关闭并重新启动mathematica 才能使用该命令。 @Mr 它将在KeyEventTranslations.tr 中工作,但您必须将命令包装在ToExpression 中,就像在ContextMenus.tr 中一样。 谢谢,我学到了很多东西。你能告诉我MenuEvaluator -> Automatic, Method -> "Queued" 吗? @Mr MenuEvaluatorMethod 的功能似乎与 ButtonEvaluatorMethod 选项类似。与Button 不同,这些映射文件上下文中的默认评估器似乎是前端,因此MenuEvaluator -> Automatic 似乎将表达式推送到内核。 Method -> “排队”似乎是一种防御措施,以防注释掉一大块代码需要很长时间。我经常说“似乎”,因为这都是猜测。【参考方案2】:

选择代码并按以下选项之一:

Alt+/ Alt-E-O Alt+E+O

注意事项:

仅在 Windows 上使用 Mathematica 8 测试。 在我的非美式键盘(ABNT 巴西)上,快捷键 Alt+/ 不起作用,我使用 Alt+E+O。

【讨论】:

【参考方案3】:

这是您的 KeyEventTranslations.tr 文件的代码,它将注释掉代码。另一半我还在努力。

Item[KeyEvent["/", Modifiers -> Command],
    FrontEndExecute[
        NotebookApply[FrontEnd`InputNotebook[],
            "(*\[SelectionPlaceholder]*)"
        ]
    ]
], 

这会将它绑定到 Alt+/,就像在 Mathematica 8 中一样。

【讨论】:

是否可以(或不建议)在“[用户目录]\AppData\Roaming\Mathematica\SystemFiles\FrontEnd”下创建此文件/方向,因此我不必为每个文件都更改文件新版本? @Phab 是的,事实上它应该在那里被复制和编辑。请参阅我最近的答案,例如:mathematica.stackexchange.com/a/880/121、mathematica.stackexchange.com/a/57492/121。

以上是关于matlab 和mathematica哪个更有用的主要内容,如果未能解决你的问题,请参考以下文章

怎么用Mathematica8.0.1来画函数图象

用matlab或者mathematica求积分解微分方程

Mathematica 中如何画空间离散点。

matlab或mathematica怎样实现对离散点的傅立叶变换和逆变换

Mathematica里面用Plot画图怎么只有坐标没有图像?

如何用mathematica完成非线性函数的拟合