MATLAB - 使用for循环查找x ^ 2 + y的所有组合

jgv*_*115 3 matlab loops

我有两个这样的循环:

for x = 1:1:15
    for y = 1:1:15
        values(x,y) = x^2 + y
    end
end
Run Code Online (Sandbox Code Playgroud)

这允许我为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
Run Code Online (Sandbox Code Playgroud)

任何人都可以帮我找到一个方法,可以计算x ^ 2 + y的所有可能性,如果x和y是小数,那么不能再用作索引了吗?

小智 5

使用meshgrid,matlab内置2-D矩形网格,无需循环!

[y x]=meshgrid(0:0.1:15)
values=x.^2+y
Run Code Online (Sandbox Code Playgroud)

想象一下:

imagesc(values);
title('values=x^2+y'); axis square
xlabel('x'); ylabel('y'); colorbar;
axis xy;
set(gca,'XTick',1:10:151,'YTick',1:10:151);
set(gca,'XTickLabel',0:1:15,'YTickLabel',0:1:15);
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

编辑: mdgrid也很好,唯一需要注意的是[y x]=meshgrid...相同的 [x y]=ndgird...