Как преобразовать итерационный цикл в векторизированную операцию в matlab?
Уважаемые коллеги, прошу ваших советов!
есть предельно простой цикл, написанный в matlab:
Fi(1) = 0
for k = 2:N
Fi(k) ~ F(k-1)......
end
проблема в том, что N = 10^7...10^8 и все считается очень долго.
Для ускорения пробую parfor, но возникла проблема: невозможно вычислить текущее значения без вычисления предшествующего результата Fi(k) ~ F(k-1). Поэтому возникает вопрос: возможно ли итерационный цикл переписать в векторном виде? И если да, то как?
Напишите целое выржение, по обрубку Fi(k) ~ F(k-1)......
не возможно понять что вы хотите получить.
Тильда - это же логическое отрицание - унарный оператор, а у вас он употребляется с двумя аргументами.
вычислить последующее значение можно только зная предыдущее
В такой формулировке, очевидно, что никакая векторизация не поможет.
Но судя по коду выше у вас не совсем такая ситуация.
Сделайте tblock и siblock двумерными (может быть лучше для экономии памяти сделать двумерными t и Si) и все остальные операции производите разом над двумерными массивами.