我想在MATLAB中的两个单独的图上绘制(logε对logδt)和(logε对logδS)。任何人都可以帮助我实现这个算法吗? ε是一个误差项,δS是股价的变化,δt是时间的变化。
答案 0 :(得分:6)
假设:
err = rand(100,1);
dt = logspace(0,4,100);
ds = logspace(0,3,100);
要在对数对数刻度上绘制这些值,只需使用loglog
命令
loglog(dt, err) %% Plots error vs dt
loglog(ds, err) %% Plots error vs. ds
或者,如果您只想使用对数x轴,请使用semi-log scale
:
semilogx(dt, err)
semilogx(ds, err)
如果您想在两个不同的窗口中同时打开两个图表,可以使用figure
,如下所示:
loglog(dt, err) %% Plots error vs dt
figure
loglog(ds, err) %% Plots error vs. ds
如果你想在同一个窗口中有两个图,但是在两个不同的框架中,你可以这样使用subplot
:
figure
subplot(1,2,1)
loglog(dt, err)
title('err / dt')
subplot(1,2,2)
loglog(ds, err)
title('err / ds')
上图是使用代码创建的:
err = exp(0.005.*(1:100)).*rand(100,1)';
dt = logspace(0,4,100);
ds = logspace(0,4,100);
figure
subplot(1,2,1)
loglog(dt, err)
title(['\epsilon / \delta' 't'])
xlabel(['\delta' 't'])
ylabel('\epsilon')
subplot(1,2,2)
loglog(ds, err)
title(['\epsilon / \delta' 's'])
xlabel(['\delta' 's'])
ylabel('\epsilon')