2016-02-12 2 views
0

Я пытаюсь создать двухмерную сетку из вектора. Так, например, у меня есть:Создание 2D сетки из векторных данных в Matlab

x = 1:1:10; 
z = 2:2:20; 

Теперь я хочу, чтобы создать сетку, которая имеет й по обе стороне ячейки сетки и г в качестве значения ячейки сетки. Я старался делать это как:

[X,Y] = meshgrid(x, x); 
newZ = griddata(x, x ,z, X, Y); 

Но это дает мне ошибку:

The underlying triangulation is empty - the points may be collinear.

Нужна помощь в решении этого.

+0

Что вы имеете в виду под «г как значение ячейки сетки», поскольку г является вектором? Не могли бы вы привести пример желаемого результата –

ответ

0

На высоком уровне griddata() берет 2d-поверхность с переменным значением z в каждой точке в качестве первой части ввода, а запрос указывает на вторую часть ввода. Чтобы быть более конкретным, когда мы смотрим в определение функции:

vq = griddata(x,y,v,xq,yq) 

x и y определяет диапазон х и у значений, v, как г-значения в одной плоскости, и xq и yq вместе представляют собой точки запроса. Здесь v (в вашем случае z), как ожидается, будет 2d-матрицей, если быть точнее, размер v равен [length(x), length(y)], тогда как в вашем случае вы помещаете z в качестве вектора. Matlab генерирует предупреждение, так как размер не совпадает.

Для справки: http://www.mathworks.com/help/matlab/ref/griddata.html?refresh=true

Смежные вопросы