我有两个这样的循环:

for x = 1:1:15
    for y = 1:1:15
        values(x,y) = x^2 + y
    end
end

这允许我为 x 和 y 的每个组合计算 x^2 + y(如果它们是整数)。

但是,如果我还想为小数计算 x^2 + y 怎么办?

所以像这样:
for x = 0:0.1:15
    for y = 0:0.1:15
        ????? = x^2 + y
    end
end

谁能帮我找到一种方法,如果 x 和 y 是小数所以不能再用作索引引用,则可以计算 x^2 + y 的所有可能性?

最佳答案

用:

[x y] = ndgrid(0:0.1:15);
values = x.^2 + y;

其他答案的问题:
  • @inigo 的回答将改变 xy 的顺序与您的初始示例相比(通过使用 meshgrid 而不是 ndgrid
  • @NominSim 的答案必须付出额外的努力从 d_x
  • 获取 x
  • @mecid 的答案必须分别计算列和行(MATLAB 中也没有++ 运算符)。如果我要走@mecid 的路线,我会使用以下内容。



  • 由于它产生了一些讨论,从文档(在 MATLAB 中,而不是在在线文档中)关于 meshgridndgrid 之间的区别:
    meshgridndgrid 类似,除了前两个输入和输出参数的顺序被切换(即 [X,Y,Z] = meshgrid(x,y,z) 产生与 [Y,X,Z] = ndgrid(y,x,z) 相同的结果)...... meshgrid 也仅限于 2D 或 3D。

    关于MATLAB - 使用 for 循环查找 x^2 + y 的所有组合,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16683181/

    10-12 18:31