首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在MATHEMATICA中将大数字(比方说3000或100000)转换为科学格式(比方说10^3或3*10^5)

在MATHEMATICA中将大数字(比方说3000或100000)转换为科学格式(比方说10^3或3*10^5)
EN

Stack Overflow用户
提问于 2014-02-17 16:04:07
回答 1查看 225关注 0票数 1

我使用Plot3D命令绘制了一个3-D图。根据参数值的不同,绘图会显示非常大的数字(例如,3000或100000)。所以,我的z轴看起来很奇怪,因为它也占据了很大的空间。我想用科学的指数格式来写它们,比如说,3*10^3或10^5。

我还看到,只有当数字有七位或更多位时,Mathematica才会自动将大数字转换为科学格式。有没有人可以帮我,让我用上面提到的科学格式写任何数字?

EN

回答 1

Stack Overflow用户

发布于 2014-02-17 18:30:57

您可以像这样为z-ticks定义一个函数:-

代码语言:javascript
复制
ticks[min_, max_, n_] := Transpose[Function[z, {z, Function[x,
       ScientificForm[N@x]] /@ z}]@FindDivisions[{min, max}, n]] 

m = 456;

Plot3D[{x^2 + y^2, -x^2 - y^2}, {x, -m, m}, {y, -m, m}, BoxRatios -> {1, 1, 1}, 
 Ticks -> {Automatic, Automatic, ticks[#1, #2, 5] &}]

编辑

以下代码可用于省略z轴刻度的有效位中的小数点:-

代码语言:javascript
复制
ticks[min_, max_, n_] := Transpose[Function[z, {z, Function[x,
       ScientificForm[N@x /. (0. -> 0), NumberPoint -> If[IntegerQ[x] &&
           Union[Rest@IntegerDigits@x] == {0}, "", "."]]] /@ z}]@
   FindDivisions[{min, max}, n]]
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21823706

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档