Как мы можем преодолеть ограничения буфера в октаве? - PullRequest
0 голосов
/ 27 января 2011

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

1 Ответ

0 голосов
/ 28 января 2011

Попробуйте выразить проблему в матрицах. MATLAB и Octave оптимизированы для матричных операций. Вот выдержка из того, что сайт документации MATLAB говорит о векторизованных циклах :

Программное обеспечение 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 Руководство по векторизации кода и некоторые примеры из этих нескольких связанных вопросов:

...