如何在 excel 或 matlab 中处理科学数字?

如何在 excel 或 matlab 中处理科学数字?

我已将文本文件导入 Excel。该文件包含数字和文本列。数字列中有一些仅以文本格式存在的科学数字。当我将 Excel 文件导入 Matlab 时,我遇到了有关科学数字的问题,即这些数字不是数字!我该如何处理这些数字?为什么会出现这种情况?

该文件最初是一个测序程序的结果。然后我添加了 txt 后缀以将其更改为文本格式。最后我在 Microsoft excel 中打开它并保存为 xlsx 格式。这是我的文件的一行在 excel 表中的样子:

ENSMUSG00000078645  -   -   ENSMUSG00000078645  Fam63a  TSS68162    3:95085766-95088779 -   -   **6.41727e-317**    0   0.309616    OK

粗体数字是这些科学数字之一。

以下是原始文本文件的部分内容:

tracking_id class_code  nearest_ref_id  gene_id gene_short_name tss_id  locus   length  coverage    FPKM    FPKM_conf_lo    FPKM_conf_hi    FPKM_status

ENSMUSG00000088390  -   -   ENSMUSG00000088390  U7  TSS3702 1:3668960-3669024   -   -   0   0   0   OK

答案1

这是一个 matlab 脚本,它将您的示例数据导入到 cellarray 中,然后将其内容复制到以您的标题命名的变量中。

fid  = fopen('tst.tst');
data = textscan(fid,'%s %s %s %s %s %s %s %s %s %d %d %d %s','HeaderLines',2);
fclose(fid)

mytracking_id         = data{1};
myclass_code          = data{2};
mynearest_ref_id      = data{3};
mygene_id             = data{4};
mygene_short_name     = data{5};
mytss_id              = data{6};
mylocus               = data{7};
mylength              = data{8};
mycoverage            = data{9};
myFPKM                = data{10};
myFPKM_conf_lo        = data{11};
myFPKM_conf_hi        = data{12};
myFPKM_status         = data{13};
clear data

用 读取的列%d将成为整数向量(用于%g浮点数)。用 读取的列%s是字符串单元格数组,您可能需要进一步处理这些。

我选择使用前缀my,这样您就不会覆盖长度之类的函数。

答案2

Excel 中的 VALUE 函数会将文本格式的科学计数法转换为存储的数字值。例如,如果单元格 A1 中有文本“4.879E-16”,则可以使用:

=VALUE(A1)

获取值:

0.0000000000000004879

相关内容