当我们尝试使用一个限制为100的for循环实现程序时,octave无法显示所有结果。这是缓冲区的问题。我们怎么能克服这个?
答案 0 :(得分:0)
尝试用矩阵表达问题。 MATLAB和Octave针对矩阵运算进行了优化。以下是MATLAB文档网站关于vectorizing loops的内容的摘录:
MATLAB软件使用矩阵语言,这意味着它是为矢量和矩阵运算而设计的。您通常可以使用利用此设计的矢量化算法来加速代码。 矢量化意味着将
for
和while
循环转换为等效的矢量或矩阵运算。
它们还提供了一个矢量化循环的简单示例,用于计算1001值的正弦值,范围从0到10:
i = 0;
for t = 0:.01:10
i = i + 1;
y(i) = sin(t);
end
到相同代码的矢量化版本:
t = 0:.01:10;
y = sin(t);
MATLAB中有更多细节Code Vectorization Guide 以及这几个相关问题中的一些例子: