【发布时间】:2019-09-05 02:17:01
【问题描述】:
我一直在尝试评估 matlab 中的函数。我希望我的 x 向量从 0 到 1000,我的 y 向量从 0 到 125。它们的长度都应该是 101。 要计算的方程是 z(x,y) = ay + bx,其中 a=10 和 b=20。
a = 10;
b = 20;
n = 101;
dx = 10; % Interval length
dy = 1.25;
x = zeros(1,n);
y = zeros(1,n);
z = zeros(n,n);
for i = 1:n;
x(i) = dx*(i-1);
y(i) = dy*(i-1);
for j = 1:n;
z(i,j) = a*dy*(j-1) + b*dx*(j-1);
end
end
我得到了答案,但我不知道我是否正确地使用了嵌套 for 循环中的索引?
【问题讨论】:
-
您是否希望 x 沿一个矩阵维度增加,而 y 沿另一个矩阵维度增加?如果是这样,您的代码不正确。你想做
x(i) = dx*(i-1)和y(j) = dy*(j-1),然后z(i,j) = a*y(j) + b*x(i)。 -
使用
linspace创建x和y,然后你可以使用meshgrid:[X,Y] = meshgrid(x,y)后跟Z = a*Y+b*X。 -
@obchardon:你不再需要
meshgrid,现在有隐式单例扩展。你可以写z = a*y + b*x.'。