簡體   English   中英

如何評估具有不同x和y向量的兩個變量的函數

[英]How to evaluate function of two variables with different x and y vectors

我一直在嘗試評估matlab中的函數。 我希望我的x向量從0到1000,我的y向量從0到125。它們的長度都應為101。要計算的方程為z(x,y)= a y + b x,其中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循環中的索引來正確執行此操作?

請參見MATLAB的linspace函數。

a=10;
b=20;
n=101;
x=linspace(0,1000,n);
y=linspace(0,125,n);
z=a*y+b*x;

這更容易,並為您照顧間隔間隔。 從linspace文檔中,

y = linspace(x1,x2,n)生成n個點。 點之間的間距為(x2-x1)/(n-1)。

編輯:正如其他人指出的那樣,我上面的解決方案是一個向量,而不是OP似乎想要的矩陣。 正如@obchardon指出的那樣,您可以使用meshgrid制作x和y點的2D網格以生成z矩陣。 更新的方法將是:

a=10;
b=20;
n=101;
x=linspace(0,1000,n);
y=linspace(0,125,n);
[X,Y] = meshgrid(x,y);
z=a*Y+b*X;

(您可以交換xy的順序,具體取決於您是否希望沿z的行或列使用每個變量。)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM