Scientific notation values to the y axis label based on original data

Hey! I would like to automatically have the y-axis label updated based on the input values for the variable y. In this case I would like the line "-5" in the y-axis label replaced by "10^-5" (with the -5 shown as an exponent).
Thanks in advance for any help!
if true
% code
x=[1:3];
y=[.00002 .00004 .00006];
figure;
plot(x,y);
ylabexp=floor(log10(y(1)));
ylab = {'\uparrow';'\epsilon /';ylabexp;'M^{-1}'};
yh = ylabel(ylab);
set(yh,'rot',0)
ylabh2 = get(gca,'YLabel');
set(ylabh2,'Position',get(ylabh2,'Position') - [.1 0 0])
end

4 件のコメント

Reid
Reid 2014 年 5 月 23 日
sorry, I'm new to matlab and not sure how to modify the code into appropriate spacing
dpb
dpb 2014 年 5 月 23 日
Simplest is to insert to blank spaces in front of the first line of code in a new paragraph (ie, with a blank line in front of code)
Star Strider
Star Strider 2014 年 5 月 24 日
編集済み: Star Strider 2014 年 5 月 24 日
I tried to run your code but couldn’t.
  1. PLEASE format your code — use the ‘[{}Code]’ button
  2. what is ‘yval’?
  3. Y not use semilogy?
Reid
Reid 2014 年 5 月 24 日
Thanks for the help with the code button. I'm still getting "-5" in the y axis label and not "10^-5"
Attached is what i'm seeing when i run the code.

サインインしてコメントする。

 採用された回答

Star Strider
Star Strider 2014 年 5 月 24 日

0 投票

Change your ylabexp line to:
ylabexp=sprintf('10^{%d}',floor(log10(y(1))));
If I understand your question correctly, that should do what you want.

その他の回答 (1 件)

Reid
Reid 2014 年 5 月 24 日

0 投票

Thanks!

カテゴリ

質問済み:

2014 年 5 月 23 日

コメント済み:

2014 年 5 月 24 日

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by