如何在没有比例因子的情况下将Matlab的y轴设置为科学计数法?

kcrjzv8t  于 2023-05-01  发布在  Matlab
关注(0)|答案(1)|浏览(216)

我试图绘制一组数据,但我希望y轴以科学符号显示,而不带比例因子。我用了“ax = gca;ax. Y轴指数= 1;然而,这随后在y轴的顶部结合了比例因子。如何在没有比例因子的情况下用科学计数法绘图?我添加了一个示例照片,只是为了帮助澄清我的意思。代码如下。谢谢

close all; clear; clc;

v(1) = 0;
y(1) = 120;
g = 9.80665;
T = 5.044;
dt=10^-3;
t = 0:dt:T;
k = 0.5*1e-5*0.82*0.5;
m = 250;

for ii = 2:length(t)

    f= k*v(ii-1).^2 - m*g;
    v(ii) = v(ii-1) + (f/m)*dt;
    y(ii) = y(ii-1) + v(ii)*dt;
    
    if y(ii) < 0 && y(ii-1) > 0
        Timpact = t(ii);
    end
    
end

D=@(g,t) 120+(.5*-g).*(t.^2);
D1=D(g,t);
Net=m*g-k*v.^2;
F1=m*g;
F2=k*v.^2; 
F3=-F2+F1;
A=Net/m;
Quality=1-(A/g);
  
figure
 plot (t,Quality);
 title ('Relative Microgravity Quality')
 xlabel('Time [s]')
 ylabel('Relative Microgravity Quality')
 hold on 
 grid on

我想要的示例:

ax = gca; ax.int count = 1;
上面将y轴转换为科学记数法,但随后加入了x10^1的比例因子。如果我将指数设置为0,它将消除比例因子,但也不是科学计数法。

lymnna71

lymnna711#

您只需要编辑刻度标签格式

ax = gca;
ax.YAxis.TickLabelFormat = '%.2e';

或者等效地使用ytickformat函数:

ytickformat( '%.2e' );

有关格式化字符串的更多细节,请参阅文档,它们与其他字符串格式化函数(如fprintf)的约定相同。
在这种情况下,%.2e是2个小数位的指数表示法。

相关问题