Matlab的 - 对一个线
我有以下的画面产生一种自动动画过渡: Matlab的 - 对一个线
,我想创建一个连续的过渡。蓝线(-20deg-start)变得像(22deg - original),然后变成像(60deg-stop)一样。 生成该行的代码是:
>> clear all >> x=[0 11 20 34];
>> y=[2 8 17 32];
>> z=[9 20 29 43];
>> v=[16 23 32 43];
>> w=[15 26 35 49];
>> t=[30 40 47 55];
>> figure
>> hold on
>> plot(t,x, t,y, t,z, t,v, t,w)
是否有可能用Matlab的帮助?
谢谢!
回答:
是的,你可以(当然从我个人理解,你想达到的)。您可以将所有数据放入1个大数组中,并循环显示每行,并在每组数据之间稍作停顿。
例子:
clear clc
close all
clear all
x=[0 11 20 34];
y=[2 8 17 32];
z=[9 20 29 43];
v=[16 23 32 43];
w=[15 26 35 49];
t=[30 40 47 55];
%// Put everything in single array
AllArrays = [x;y;z;v;w];
figure
hold all
%// Loop through each rows
for k = 1:size(AllArrays,1)
plot(t,AllArrays(k,:))
%// Make a pause to see output
pause(.5)
end
输出:
这是你的意思?或者更平滑的过渡?
回答:
下面的示例示出了如何执行两条曲线之间的线性过渡,只要它们在同一组X值两者限定。
x = linspace(0,1,200); %// x values y1 = log(1+x); %// y values of line 1
y2 = 1-x.^2; %// y values of line 2
c1 = [1 0 0]; %// red
c2 = [0 0 1]; %// blue
plot(x, y1, ':', 'color', c1); %// plot first line
hold on
plot(x, y2, ':', 'color', c2); %// plot second line
tt = linspace(0,1,100); %// define time axis, between 0 and 1. Adjust "100" for smoothness
h = plot(x, y1, '-', 'color', c2); %// moving line. Initially coincides with line 1
for t = tt
y = y1*(1-t) + y2*t;
c = c1*(1-t) + c2*t;
set(h, 'YData', y, 'Color', c); %// update y values and color of moving line
pause(.02) %// adjust ".02" as needed
end
以上是 Matlab的 - 对一个线 的全部内容, 来源链接: utcz.com/qa/258611.html