擅长:python、mysql、java
<p>由于像<a href="http://www.mathworks.com/company/newsletters/news_notes/may03/profiler.html" rel="noreferrer">just-in-time acceleration (JITA)</a>这样的编译器优化,循环在MATLAB中不再是坏的。等等,大多数时候,我注意到在当前的MATLAB版本中,使用循环的解决方案比复杂的(尽管很酷:D)一行程序要快得多。</p>
<p><a href="http://www.mathworks.com/access/helpdesk/help/techdoc/ref/bsxfun.html" rel="noreferrer">^{<cd1>}</a>也许可以做到这一点,但在我的经验中,它往往也有内存问题,但比<code>repmat</code>要少。</p>
<p>所以语法应该是:</p>
<p><code>AA = bsxfun(@minus,A,b)</code>其中<code>b</code>是向量,<code>A</code>是您的大矩阵</p>
<p>但我强烈建议你先分析一下这个错误的版本,然后再做决定!很可能,由于内存限制,您可能没有选择:)</p>