У меня есть вектор (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?
MATLAB: применение нескольких значений к каждой точке координат (x, y) в двухмерной декартовой системе координат
Ответы (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
Большое спасибо, Ричард.
- person InquisitiveInquirer; 19.03.2017