, когда мы попытались реализовать программу с одним для цикла с пределом 100, октава не смогла показать все результаты. Это проблема с буфером. как мы можем это преодолеть?Как мы можем преодолеть ограничения буфера в октаве?
ответ
Попробуйте выразить проблему с точки зрения матриц. 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 и некоторые примеры в этих нескольких смежных вопросах:
пожалуйста показать код, спасибо – eat