MATLAB: применение нескольких значений к каждой точке координат (x, y) в двухмерной декартовой системе координат

У меня есть вектор (5x1) V = (V1, V2, V3, V4, V5), и я хотел бы присвоить эти пять значений каждой точке сетки в системе координат (x,y). Так, например, (x,y) = (1,1) может иметь значения V = (1, 0.432, -5, 2, 67), а (x,y) = (2,3) может иметь назначенные ему значения V = (-43, 3.53, 0.423, -4, -0.432). Есть ли хорошая структура данных, которая сможет сделать это в MATLAB?


person InquisitiveInquirer    schedule 19.03.2017    source источник


Ответы (1)


Везде одинаковое количество значений

Если вы хотите присвоить одинаковое количество значений каждой точке сетки, лучше всего создать матрицу 5xXxY, например

xy_vals = rand([5 nx ny]);

где вы можете получить доступ к значениям в точке (xx,yy) через

test_vals = xy_vals(:,xx,yy);

Гибкое количество значений в каждой точке сетки

Если вы хотите быть гибким в отношении количества значений на точку сетки, я предлагаю массив ячеек массивов. Например:

xy_cell = cell([nx ny]);
for ix = 1:nx
    for iy = 1:ny
        xy_cell{ix,iy} = randi([1 randi(10)]);
    end
end

Теперь получите доступ к значениям в точке (xx,yy) через

test_vals = xy_cell{xx,yy};
person Richard    schedule 19.03.2017
comment
Большое спасибо, Ричард. - person InquisitiveInquirer; 19.03.2017