我的代码看起来如此:
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的新手
答案 0 :(得分:1)
变化:
Isoform = Isoformnumber(j:j);
更自然:
Isoform = Isoformnumber{j};
像这样你将检索单元格的内容。 j
,而不是整个细胞。