我有一个与此类似的功能
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)。但这远远超出了我的技能......任何提示都会受到赞赏!
答案 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的实数元素