• Познакомьтесь с пентестом веб-приложений на практике в нашем новом бесплатном курсе

    «Анализ защищенности веб-приложений»

    🔥 Записаться бесплатно!

  • CTF с учебными материалами Codeby Games

    Обучение кибербезопасности в игровой форме. Более 200 заданий по Active Directory, OSINT, PWN, Веб, Стеганографии, Реверс-инжинирингу, Форензике и Криптографии. Школа CTF с бесплатными курсами по всем категориям.

Как ускорить код в VB Statistica

  • Автор темы doves
  • Дата начала
D

doves

Буду признателен за подсказку, как можно ускорить работу вот этого кода. Я его использую в пакете Statistica для анализа частоты встречаемости определенных значений переменной. Код работал адекватно, когда размер массива был 3^5*5, но когда он увеличился до 13^5*5, время обработки выросло примерно до 3х секунд на 1 ячейку таблицы. Подскажите, как можно ускорить процесс

For b = -15 To 50 'для каждого значения переменной b
v = v+1
For LOOP_CASE = 1 To 177 'на каждой из 177 строк массива Matrix
For LOOP_VAR = 1 To 13^5*5 'подсчитать частоту встречаемости b в 13:5*5 (т.е. 1856465) столбцах массива Matrix
If Matrix(LOOP_CASE, LOOP_VAR) = b Then k=k+1
Next LOOP_VAR
ADS.Value (LOOP_CASE, v) = k 'поместить полученное значение k в таблицу Statistica
k=0
Next LOOP_CASE
Next b
v=0
 

Domino-Designer

Людям надо поморгать!
Lotus Team
06.12.2011
616
223
BIT
9
Я прочел задачу как: "Посчитать количество вхождений температуры от -15 до 50 в каждой строке матрици Matrix"

Код:
Dim b(1 to 177,-15 to 50) As Long

For LOOP_CASE = 1 To 177 '
For LOOP_VAR = 1 To 13^5*5 '
If Matrix(LOOP_CASE, LOOP_VAR) >= LBound(b,2) and  Matrix(LOOP_CASE, LOOP_VAR) <= UBound(b,2) Then b(LOOP_CASE,Matrix(LOOP_CASE, LOOP_VAR)) = b(LOOP_CASE, Matrix(LOOP_CASE, LOOP_VAR))+1
Next LOOP_VAR
Next LOOP_CASE

в b ваш тезультат.
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!