MATLAB:将多个值应用于二维笛卡尔坐标系中的每个 (x,y) 坐标点

MATLAB: Applying multiple values to each (x,y) coordinate point in a 2D Cartesian coordinate system

我有一个 (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 中做到这一点?

到处都有相同数量的值

如果要给每个格点分配相同数量的值,最好创建一个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};