Matlab 用包含随机变量的子图绘制两个图

Matlab 用包含随机变量的子图绘制两个图,matlab,random,Matlab,Random,我试图用随机变量绘制维纳过程的两个图(见下面的代码),如何让matlab绘制一个图,然后用不同的随机数重新计算和复制,因为目前这会生成两个相同的图 T=1; n=100; dt=T/n; random=randn(1,n); dW=sqrt(dt)*random; W=cumsum(dW); t=0:dt:T; W=[0,W]; figure; subplot(2,1,1); plot(t,W); xlabel('Time'); ylabel('W(t)'); title('Simple Wi

我试图用随机变量绘制维纳过程的两个图(见下面的代码),如何让matlab绘制一个图,然后用不同的随机数重新计算和复制,因为目前这会生成两个相同的图

T=1;
n=100;
dt=T/n;
random=randn(1,n); 
dW=sqrt(dt)*random;
W=cumsum(dW);
t=0:dt:T;
W=[0,W];
figure;
subplot(2,1,1);
plot(t,W); xlabel('Time'); ylabel('W(t)'); title('Simple Wiener process a)'); grid    minor;  
subplot(2,1,2);
plot(t,W); xlabel('Time'); ylabel('W(t)'); title('Simple Wiener process b)'); grid minor; 

所以我想在这个过程的同一个图上绘制两个图。

您需要调用
randn
两次,一旦您将
randn
的输出分配给变量,它就不会改变。所以基本上最简单的方法就是在第一次绘图后重写第4-8行的所有代码

但是,在您的情况下,更快的方法是创建一个包含两行的随机向量:

n=100;
dt=T/n;
random=randn(2,n); 
dW=sqrt(dt)*random;
W=cumsum(dW);
t=0:dt:T;
W=[[0;0],W];
figure;
subplot(2,1,1);
plot(t,W(1,:)); xlabel('Time'); ylabel('W(t)'); title('Simple Wiener process a)'); grid    minor;  
subplot(2,1,2);
plot(t,W(2,:)); xlabel('Time'); ylabel('W(t)'); title('Simple Wiener process b)'); grid minor; 

如何绘制一个图形,重新计算,然后用不同的随机数重新填充;p

T=1;
n=100;
dt=T/n;
random=randn(1,n); 
dW=sqrt(dt)*random;
W=cumsum(dW);
t=0:dt:T;
W=[0,W];
figure;
subplot(2,1,1);
plot(t,W); xlabel('Time'); ylabel('W(t)'); title('Simple Wiener process a)'); grid    minor; 
random=randn(1,n); 
dW=sqrt(dt)*random;
W=cumsum(dW);
W=[0,W]; 
subplot(2,1,2);
plot(t,W); xlabel('Time'); ylabel('W(t)'); title('Simple Wiener process b)'); grid minor;