Перестановка вектора в Matlab - PullRequest
0 голосов
/ 07 ноября 2011

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

Ответы [ 2 ]

1 голос
/ 07 ноября 2011

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

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];
0 голосов
/ 07 ноября 2011

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

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