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

回到顶部