如何在MATLAB中移动并重复相同的功能,然后对这些曲线下的总重叠面积求和?

时间:2017-11-03 18:26:56

标签: matlab convolution

我有一个与此类似的功能

x=-10:0.1:10;
   y=sqrt((36-x.^2)/9);
   plot(x,y)

我想将它移动1并重复20次(这样我的重复次数与x的值一样多)。我尝试过像circshift这样的东西:

A=[1 2 3 4 5] 
B=zeros(size(A));
n=1; %Shift units
B(n+1:end)=A(1:end-n)
但是我被卡住了。有了这个,我想计算某个范围内所有重叠区域的总和(比如-10:0)。但这远远超出了我的技能......任何提示都会受到赞赏!

1 个答案:

答案 0 :(得分:0)

这是绘制所有200行同时在你的示例中每行移动1个元素相当于loadTemperatureData

0.1

注意,当spacing = 0.1; x = [-10:spacing:10]'; %Size 1 x 201 shift = 0:spacing:spacing*numel(x)-spacing; %Size 201 x 1 %As long as you have a relatively new version of Matlab this will expand into a matrix x = x + shift; %Size 201x201 y = sqrt((36-x.^2)/9); %Size 201x201 plot(x,y); %This will plot all 201 lines at once. 大于36时,你的方程给出了y的复数。所以该图只包含y的实数元素