<p>大多数答案都没有抓住要点。</p>
<p>有一个原因是matlab如此优秀和广泛使用:</p>
<h2>非常快的编码</h2>
我是计算机视觉博士生,在使用博士学位论文之前,已经使用了Matlab 4年,我使用的是不同的语言,包括C++、java、PHP、Python……大多数计算机视觉研究人员都是专门使用matlab。</p>
<h2>1) 研究人员需要快速成型</h2>
<p>在研究环境中,我们(希望)经常有新的想法,我们想很快地测试它们,看看是否值得在这个方向上坚持下去。而且大多数情况下,我们编写的代码只有一小部分是有用的。</p>
<p>在执行时,Matlab通常会慢一些,但我们不太在意。因为我们事先不知道什么方法会成功,所以我们必须尝试很多方法,所以我们的瓶颈是编程时间,因为我们的代码通常会运行几次以获得要发布的结果,仅此而已。</p>
<p>所以让我们看看matlab如何提供帮助。</p>
<h2>2) 我需要的一切都已经在那里了</h2>
<p>Matlab有很多我需要的函数,所以我不必一直重新设计它们:</p>
<p>将矩阵的索引更改为二维坐标:<code>ind2sub</code>提取图像的所有面片:<code>im2col</code>;计算图像的直方图:<code>hist(Im(:))</code>;查找列表中的唯一元素<code>unique(list)</code>;将向量添加到矩阵的所有向量<code>bsxfun(@plus,M,V)</code>;n维数组上的卷积<code>convn(A)</code>;计算代码子部分的计算时间:<code>tic; %%code; toc</code>;裁剪图像的图形界面:<code>imcrop(im)</code></p>
<p>名单可能很长。。。
通过帮助他们很容易找到。</p>
<p>最接近的是python…但这只是python中的一个痛苦,我每次都要去google查找我需要的函数名,然后我需要添加包,并且包之间不兼容,矩阵的格式改变,卷积函数只处理双倍,但在我给出时不会出错它是char,只是输出错误。。。没有</p>
<h2>3) 集成开发环境</h2>
<p>一个例子:我启动一个脚本。它会因为矩阵而产生错误。<strong>我仍然可以用命令行执行代码。</strong>我想象它在做:<code>imagesc(matrix)</code>。我看到矩阵的最后一行很奇怪。我把虫子修好了。<strong>所有变量仍处于设置状态。我选择代码的其余部分,按F9执行选择,然后一切继续。<strong>调试变得很快</strong>,多亏了这一点。</p>
<p>Matlab在执行之前强调了我的一些错误。所以我能很快看出问题所在。它提出了一些使我的代码更快的方法。</p>
<p>IDE中包含一个很棒的探查器。相比之下,使用KCahcegrind真是太痛苦了。</p>
<p>python的ide非常棒。没有ipython的python不可用。我从来没试过用ipython调试。</p>
<p>+自动完成,函数参数帮助,。。。</p>
<h2>4) 简明代码</h2>
<p>要规范化一个矩阵的所有列(我一直需要),我需要:
<code>bsxfun(@times,A,1./sqrt(sum(A.^2)))</code></p>
<p>要从矩阵中删除所有小和列,请执行以下操作:</p>
<p><code>A(:,sum(A)<e)=[]</code></p>
<p><strong>在GPU上进行计算:</p>
<pre><code>gpuX = gpuarray(X);
%%% code normally and everything is done on GPU
</code></pre>
<p>要使我的代码并行化:</p>
<pre><code>parfor n=1:100
%%% code normally and everything is multi-threaded
</code></pre>
<p>什么语言能打败它?</p>
<p>当然,我很少需要做循环,所有的东西都包含在函数中,这使得代码更容易阅读,而且索引也不麻烦。所以我可以专注于我想编程的东西,而不是如何编程。</p>
<h2>5) 绘图工具</h2>
<p>Matlab以其绘图工具而闻名。他们很有帮助。</p>
<p>Python的绘图工具的功能要少得多。但有一件事超级烦人。每个脚本只能绘制一次图形???如果我有随附的脚本,我无法在每个步骤显示内容--->;无用。</p>
<h2>6) 文件</h2>
<p>一切都很容易接近,一切都在哭泣很清楚,函数名选择得很好。
对于python,我总是需要google的东西,在论坛或stackoverflow中查找。。。。完成时间消耗。</p>
<p><strong>PS:最后,我讨厌的是matlab:它的价格</strong></p>