【问题标题】:Matlab: Avoid exp(-3) conversion at text data inputMatlab:避免在文本数据输入时进行 exp(-3) 转换
【发布时间】:2012-10-18 02:28:25
【问题描述】:

我有一个带有数据的txt文件,所以我使用了以下函数

M = dlmread('data.txt', '\t');

但是我的数据正在转换为 exp(-3) 我该如何避免呢?

数据如下所示:

M =

   1.0e+03 *

         0    0.0080    0.3500    0.1500    4.6990    0.0145    0.0740         0
         0    0.0080    0.4000    0.1700    4.7460    0.0120    0.0710         0
         0    0.0080    0.4000    0.1750    4.3850    0.0120    0.0720         0
         0    0.0060    0.2500    0.0720    3.1580    0.0195    0.0750         0
         0    0.0080    0.3040    0.1500    3.8920    0.0125    0.0720         0
         0    0.0080    0.3500    0.1450    4.4400    0.0140    0.0750         0
         0    0.0060    0.2500    0.1050    3.8970    0.0185    0.0750         0
         0    0.0060    0.1630    0.1330    3.4100    0.0158    0.0780    0.0010
         0    0.0080    0.2600    0.1100    4.0600    0.0190    0.0770         0

【问题讨论】:

  • 这不是转换,只是显示问题,即“在引擎盖下”,您的所有精度都被保留了。使用format long以更高的精度显示数据。
  • @H.Muster 你所做的非常令人沮丧。看看副本的标题,Matlab 的新手怎么会知道它是一样的。当您在 Matlab 上搜索时,我没有得到以前提出的问题作为建议。放一个-1点,然后标记为删除。事实上看看下面的答案,上一个问题并没有真正提供我正在寻找的答案。
  • 请注意,我在评论中回答了您的问题。我将问题标记为可能重复的事实并不意味着冒犯,也不应该阻止您;这只是保持网站清晰的正常程序。此外,我没有否决(-1)您的问题;那是别人。

标签: matlab


【解决方案1】:

正如 H Muster 所说,这是一个显示问题。

显示数据的更好方法(在我看来)是通过 num2str。

如果你跑了

num2str(M)

你会看到

ans =

0       0.008        0.35        0.15       4.699      0.0145       0.074           0
0       0.008         0.4        0.17       4.746       0.012       0.071           0
0       0.008         0.4       0.175       4.385       0.012       0.072           0
0       0.006        0.25       0.072       3.158      0.0195       0.075           0
0       0.008       0.304        0.15       3.892      0.0125       0.072           0
0       0.008        0.35       0.145        4.44       0.014       0.075           0
0       0.006        0.25       0.105       3.897      0.0185       0.075           0
0       0.006       0.163       0.133        3.41      0.0158       0.078       0.001
0       0.008        0.26        0.11        4.06       0.019       0.077           0

这可能是您一开始所期望的。

如果您想要更高的精度,请将格式字符串传递给 num2str。

例如:

 num2str(M,'%8g')

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-07-17
    • 1970-01-01
    • 2021-01-29
    • 1970-01-01
    • 2017-08-21
    • 1970-01-01
    • 2023-03-10
    • 2022-08-20
    相关资源
    最近更新 更多