Перестановка вектора в matlab

#matlab #finite-element-analysis

#matlab #анализ методом конечных элементов

Вопрос:

Я пишу код для адаптивного метода конечных элементов в 1d. У меня есть интервал, скажем, [0,1], и на первой итерации у меня есть сетка, x = 0: .25: 1, а на второй итерации я хотел бы разделить второй и последний сегменты на 3 и 5 сегментов. Таким образом, обновленный вектор x имеет 11 узлов. Этот процесс будет повторяться снова и снова с разными сегментами. Я действительно в замешательстве, как я могу обновить вектор x ?

Ответ №1:

Один из способов сделать это:

 x = 0:0.25:1;
xrefined3 = [x(1):0.25/3:x(2) x(2:end-1) x(end-1):0.25/3:1];
xrefined5 = [x(1):0.25/5:x(2) x(2:end-1) x(end-1):0.25/5:1];
  

Ответ №2:

Допустим, ваш вектор x имеет n элементов. И вы хотите обновить i-й сегмент и разделить его на k частей. затем:

 x = [x(1:i-1), x(i):((x(i 1) - x(i))/k):x(i 1), x(i 2:n)];