#matlab #mesh
#matlab #сетка
Вопрос:
У меня есть несколько сеток с x
y
z
интерполяцией. Я хочу получить z
из каждой сетки с одинаковыми x
и y
. Например. Я хочу знать, какое значение имеет z x=13
y=0.20
для каждой сетки
[x y z]=meshgrid(x,y,z)
[x1 y1 z1]=meshgrid(x1,y1,z1)
[x2 y2 z2]=meshgrid(x2,y2,z2)
zOfxy=getz(13,0.20)
z1Ofx1y1=getz(13, 0.20)
z2Ofx2y2=getz(13, 0.20)
Есть ли какая-либо готовая функция? Я знаю, что могу построить его и получить значения из него, но очень сложно получить точные данные z
Комментарии:
1.
[X Y Z]=meshgrid(x,y,z)
возвращает 3D-массивы со всеми значениями в диапазонеz
для каждого значения вx
иy
. То же самое для других перестановок. Если вас смущает то, что вы делаете, и то, что вы хотите сделать, прочитайтеmeshgrid
.2. Вам нужен какой-то словарь?
3. @erfan Я не нашел ничего полезного в вашей ссылке.
4. @Nic Я не понимаю вашего вопроса
5. Функция meshgrid возвращает таблицу значений [x y z]. Например: [x1 y1 z1; x2 y2 z2; …. xn yn zn ] . Вам нужна функция, возвращающая z2, если вы вызываете getz(x2,y2). Это правильно? В качестве альтернативы, вы хотите создать новую 3D-точку для параметра x и y?
Ответ №1:
Я не думаю, что есть встроенная функция для извлечения всех связанных значений z для данного кортежа x-y. Поскольку массивы значений X и Y отсортированы, вы могли бы использовать поиск по Фибоначчи. Вычислительная сложность должна быть O (log n * log m)
, где n — мощность X, а m — мощность Y.