显示某些随机线段生成的动画
animation to show generation of certain random line segments
我正在尝试自己理解这些
,
我想模拟一些直线,在Matlab中,如下:
f(t,z)=a(z)t+b(z) 其中a(z)和b(z)是区间[-1,1]内均匀分布的随机变量,t是时间在 [-2,2] 之间。更简单地说:f(t)= at+b,z 是常数 (a,b) 的随机索引,假设 [-1,+1] 是 z 的样本 space,z 是均匀的分布式。
谁能帮我写代码?有什么办法可以将随机生成的直线显示为动画?非常感谢您的帮助。
我正在这样尝试:
a= rand(-1,1);
b=rand(-1,1);
-2<t<2;
f=a*t+b;
plot(t, f);
But I am getting error Unrecognized function or variable 't'.
您的尝试是无效的 MATLAB 语法,
-2<t<2
除了产生您看到的错误之外什么都不做,因为 t
不存在
f = a*t+b
你不能这样定义函数,你可能想使用 anonymous function.
你不能绘制 t
因为你没有定义它,你不能绘制 f
因为你没有正确定义它有效 t
.
您需要为 t
定义一些离散值。在这种情况下,两个值就足够了,因为无论如何您只是在绘制直线。无论出于何种原因,您都可以使用 linspace
or the colon operator 创建更精细的间隔数组。
N = 10; % Number of lines to plot
t = [-2,2]; % We want lines between -2 and 2
a = rand(N,1)*2-1; % N random values between -1 and +1
b = rand(N,1)*2-1; % N random values between -1 and +1
f = @(t,z) a(z)*t + b(z); % Define f in terms of axis t and index z
% Plotting
figure; hold on;
for iz = 1:N
plot( t, f(t,iz) );
end
这给出了这样的图像:
如果您需要“动画”,您可以添加 pause
,例如pause(1)
循环内
我正在尝试自己理解这些
我想模拟一些直线,在Matlab中,如下:
f(t,z)=a(z)t+b(z) 其中a(z)和b(z)是区间[-1,1]内均匀分布的随机变量,t是时间在 [-2,2] 之间。更简单地说:f(t)= at+b,z 是常数 (a,b) 的随机索引,假设 [-1,+1] 是 z 的样本 space,z 是均匀的分布式。
谁能帮我写代码?有什么办法可以将随机生成的直线显示为动画?非常感谢您的帮助。
我正在这样尝试:
a= rand(-1,1);
b=rand(-1,1);
-2<t<2;
f=a*t+b;
plot(t, f);
But I am getting error Unrecognized function or variable 't'.
您的尝试是无效的 MATLAB 语法,
-2<t<2
除了产生您看到的错误之外什么都不做,因为t
不存在f = a*t+b
你不能这样定义函数,你可能想使用 anonymous function.你不能绘制
t
因为你没有定义它,你不能绘制f
因为你没有正确定义它有效t
.
您需要为 t
定义一些离散值。在这种情况下,两个值就足够了,因为无论如何您只是在绘制直线。无论出于何种原因,您都可以使用 linspace
or the colon operator 创建更精细的间隔数组。
N = 10; % Number of lines to plot
t = [-2,2]; % We want lines between -2 and 2
a = rand(N,1)*2-1; % N random values between -1 and +1
b = rand(N,1)*2-1; % N random values between -1 and +1
f = @(t,z) a(z)*t + b(z); % Define f in terms of axis t and index z
% Plotting
figure; hold on;
for iz = 1:N
plot( t, f(t,iz) );
end
这给出了这样的图像:
如果您需要“动画”,您可以添加 pause
,例如pause(1)
循环内