2011-01-27 1 views
-1

, когда мы попытались реализовать программу с одним для цикла с пределом 100, октава не смогла показать все результаты. Это проблема с буфером. как мы можем это преодолеть?Как мы можем преодолеть ограничения буфера в октаве?

+0

пожалуйста показать код, спасибо – eat

ответ

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 и некоторые примеры в этих нескольких смежных вопросах: