Como lidar com números científicos em excel ou matlab?

0

Eu importei um arquivo de texto para o excel. O arquivo tem colunas numéricas e de texto. Na coluna numérica existem alguns números científicos que estão apenas no formato de texto. Quando eu importo o arquivo excel para matlab eu me deparo com um problema sobre os números científicos que dizem que estes não são números! Como posso lidar com esses números? Por que isso foi criado?

O arquivo estava no começo como resultado de um programa de sequenciamento. Em seguida, adicionei o sufixo txt para alterá-lo em um formato de texto. E finalmente eu abri no Microsoft excel e salvei como formato xlsx. Aqui está como uma linha do meu arquivo se parece na planilha do excel:

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

o número em negrito é um desses números científicos.

Aqui está uma parte do arquivo de texto original:

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
    
por Rozita Akrami 23.09.2013 / 12:03

2 respostas

0

Aqui está um script matlab que importa seus dados de exemplo para um cellarray e copia seu conteúdo para variáveis nomeadas após seus cabeçalhos.

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

Colunas lidas com %d se tornarão vetores de inteiros (use %g para números de ponto flutuante). Colunas lidas com %s são matrizes de células de string, você provavelmente precisará processá-las ainda mais.

Eu escolhi usar um prefixo my , para que você não substitua funções como tamanho.

    
por 23.09.2013 / 14:18
1

A função VALUE no Excel transformará a notação científica formatada em texto no valor numérico armazenado. Por exemplo, se você tiver o texto "4.879E-16" na célula A1, você pode usar:

=VALUE(A1)

Para obter o valor:

0.0000000000000004879
    
por 23.09.2013 / 12:30