Matlab 字符串加倍 (str2double)

Matlab string to double (str2double)

我正在尝试构建一个使用 Matlab 处理经济数据的金融应用程序。我要加载的文件位于 csv 文件中,并且是格式为“1222.3”的双数。到目前为止,我只使用一维,并且能够将数据加载到向量中。

问题是数据以字符串格式加载到向量中。要将所有矢量更改为双精度格式,我使用 str2double(vector),但矢量中的数字结尾如下:

1222.3 -> 1.222
153.4 -> 0.1534

我试过将向量乘以每 100 (vector.*100),但没有成功。

有什么想法吗?

如果您的矢量分量足够大,MATLAB 将以指数格式打印数字。

>> a = 1234.56

a =

   1.2346e+03

这些数字也在工作区浏览器中以科学记数法显示:

您可以使用例如,以十进制形式打印数字fprintf:

>> fprintf('%5.3f\n',a)
1234.560
>>

作为旁注,1.222 * 100 ≠ 1222 ...

Matlab自动从数值向量中提取一些公因子,这让我自己也困惑了很多次。给出公因数的线很容易错过,特别是对于大向量,因为它显示在顶部。

如果我用你给的两个数字定义一个向量,Matlab 会按以下方式显示给我:

1.0e+03 *.

行所示,它得出了 1000 倍的系数