2017-05-31 692 views
-3

是否有可能获得80*80*37(纬度,经度,时间(年))矩阵的每个网格的斜率。如何计算matlab中的斜率?

我尝试使用polyfit功能上matlab它,被卡住 ,因为我不知道到底是什么把尽可能xy,因为我是把正在给错误。如果我把再次gradient功能上matlab

[dx,dy]=gradient(x) 

什么,我得到的是的dxdy值。但我不知道这个斜率是什么。 所以,我真的需要帮助,找到每一个网格的倾斜在我80*80*37 matrixmatlab

+0

我怀疑...这不是斜坡....它可能是网格分辨率...请检查您的目的... –

回答

0

虽然这个问题不是很清楚,我会假设你想要一个80×80矩阵,每一个元素是沿着时间的斜率维度,假设你有一个线性依赖。我假设你有一个包含多年的矢量。

% 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数据。

+0

感谢您的回应,其实我在问这个问题时非常困惑。因此,无法提供足够的信息。我将来会照顾到这一点 –