Мне было любопытно, насколько быстро происходит умножение матриц в Octave 3.8.2, поэтому я использовал следующий код для расчета времени умножения двух матриц 5000X5000:
X = rand(5000,5000);
Y = rand(5000,5000);
BEFORE = time();
Z = X*Y;
AFTER = time();
disp(AFTER - BEFORE);
Результат в среднем около 1 минуты. Используя почти идентичный код, я сделал те же вычисления в Python с матрицами numpy. Это заняло около 7,5 с.
Я был удивлен этими результатами, потому что у меня сложилось впечатление, что Octave сильно оптимизирован для матричных вычислений. Мои результаты типичны? Когда дело доходит до крупномасштабных матричных вычислений, люди обычно предпочитают Python, а не Octave?
РЕДАКТИРОВАТЬ: Вот код numpy...
X = numpy.matrix(numpy.random.rand(5000,5000))
Y = numpy.matrix(numpy.random.rand(5000,5000))
BEFORE = time.process_time()
Z = X*Y;
AFTER = time.process_time()
print(AFTER - BEFORE)
numpy
. Без него невозможно сказать, почему существует огромная разница во времени. - person rayryeng   schedule 14.09.2015tic/toc
. Моя конфигурация — MATLAB R2013a в Mac OS 10.10.5 с 16 ГБ ОЗУ. - person rayryeng   schedule 14.09.2015numpy
, а не матрицы..... что подводит меня к другому вопросу. Вы пытались использовать массивыnumpy
и использоватьnumpy.dot
? - person rayryeng   schedule 14.09.2015