如何在matlab中计算斜率?

时间:2017-05-31 01:19:01

标签: matlab

是否可以获得80*80*37(纬度,经度,时间(以年为单位)矩阵)的每个网格的斜率。?

我尝试在polyfit上使用matlab功能,但卡住了 因为我不知道究竟要放什么xy,因为我所提出的是错误。如果我将gradient功能再次放在matlab上,

[dx,dy]=gradient(x)

我得到的是dxdy的价值。但我不知道斜坡是用什么的。 所以,我真的需要帮助来找到80*80*37 matrixmatlab

中每个网格的斜率

1 个答案:

答案 0 :(得分:0)

虽然问题不是很明确,但我假设您需要一个80x80矩阵,每个元素都是时间维度的斜率,假设您具有线性相关性。我假设你有一个包含年份的向量。

% dimensions
latit = 80;
longit = 80;
time = 37; % number of years

years = 1900:1936; % the vector of years

% randomly generated data
A = rand(latit, longit, time);

% matrix to hold the slopes
slopes = zeros(latit, longit);
for i=1:latit
    for j=1:longit
        p = polyfit(years, reshape(A(i, j, :), 1, []),1);
        slopes(i, j) = p(1);
    end
end

将来,请更清楚地提出问题,并尽量为Minimal, Complete, and Verifiable example添加所需的信息和数据。