使用fprintf时出错

时间:2015-05-20 12:50:24

标签: matlab

我的代码看起来如此:

PosHotspot = dataset('file', 'PositiveHotspotpos.txt', 'Delimiter', '\t');
a = 2;
exon_end = PosHotspot.total_exon;
exonposition = PosHotspot.ExonPos;
Isoformnumber = PosHotspot.Isoform;

fileID = fopen('PosHotspot_results.txt', 'w')
for j = 1:660
    exon = exonposition(j:j);
    Isoform = Isoformnumber(j:j); 
    b = exon_end(j:j) - 1;
    rng(0, 'twister');
    r=randi([a b],1,1000);
    less = sum(exon>r);
    greater = sum(exon<r);
    equal = sum(exon==r);
    fprintf(fileID, '%s %4f %4f\n',Isoform,less,greater)
end
fclose(fileID)

但是,我一直收到这个错误:

  

使用fprintf时出错       函数未定义为&#39; cell&#39;输入。

     

PositiveHotspotttest出错(第24行)
          fprintf(fileID,&#39;%s%4f%4f \ n&#39;,Isofrom,less,greater)

我确定它与将Isoforms中的信息写入文件有关。

以下是我的文件的示例:

chrom   Gene    Isoform   exon_start ExonPos total_exon exonpos_exontotal
chr20   ADA     NM_000022   43255096    4         13    0.307692307692
chr9    ALDOB   NM_000035   104187734   7         10    0.7
chr5    ARSB    NM_000046   78077674    7          9    0.777777777778
chr5    ARSB    NM_000046   78135178    6          9    0.666666666667
chr5    ARSB    NM_000046   78181406    5          9    0.555555555556

我想将Isoforms输出到我的新文件以及大于和小于值。有没有办法做到这一点?

这可能很简单,但我又是matlab的新手

1 个答案:

答案 0 :(得分:1)

变化:

Isoform = Isoformnumber(j:j);

更自然:

Isoform = Isoformnumber{j};

像这样你将检索单元格的内容。 j,而不是整个细胞。