3
我想檢索文本文件中的字符串的特定部分,如下面,我想將它們保存在文本文件中MATLAB從文本文件中檢索字符串的特定部分,並將其保存在一個新的文件在MATLAB中
原始文本文件
D 1m8ea_ 1m8e A: d.174.1.1 74583 cl=53931,cf=56511,sf=56512,fa=56513,dm=56514,sp=56515,px=74583
D 1m8eb_ 1m8e B: d.174.1.1 74584 cl=53931,cf=56511,sf=56512,fa=56513,dm=56514,sp=56515,px=74584
D 3e7ia1 3e7i A:77-496 d.174.1.1 158052 cl=53931,cf=56511,sf=56512,fa=56513,dm=56514,sp=56515,px=158052
D 3e7ib1 3e7i B:77-496 d.174.1.1 158053 cl=53931,cf=56511,sf=56512,fa=56513,dm=56514,sp=56515,px=158053
D 2bhja1 2bhj A:77-497 d.174.1.1 128533 cl=53931,cf=56511,sf=56512,fa=56513,dm=56514,sp=56515,px=128533
所以基本上,我想找回這些被標記爲"1m8e"
的pdbcodes ID,chainid打成"A"
開始值是"77"
和停止值是"496"
我希望將所有這些值保存在fprintf中tatment。
是否有某種方法是我可以在RegExp中使用,說明哪個索引的所有開始和檢索這些字符串基於文本文件中每個行的位置?
最後,我想要在fprinf語句中有1m8e, A, 77, 496
。
到目前爲止,我有兩個fopen
功能,讀取文件和一個寫入到一個新的文件,並讀取行的每一行,也有fprintf
statment:
pdbcode = '';
chainid = '';
start = '';
stop = '';
fin = fopen('dir.cla.scop.txt_1.75.txt', 'r');
fout = fopen('output_scop.txt', 'w');
% TODO: Add error check!
while true
line = fgetl(fin); % Get the next line from the file
if ~ischar(line)
% End of file
break;
end
% Print result into output_cath.txt file
fprintf(fout, 'INSERT INTO cath_domains (scop_pdbcode, scop_chainid, scopbegin, scopend) VALUES("%s", %s, %s, %s);\n', pdbcode, chainid, start, stop);
謝謝。
,如果我想用分裂,不要我需要定義名稱的文本文件,例如:split('_ /','fin')',其中'fin'代表我打開的文件? 此外,我嘗試使用上述方法與正則表達式,它不工作。它會打印出空白字符串。請指教。 – Jeiman 2012-01-10 23:45:45
錯誤使用拆分功能:'???對'char'類型的輸入參數未定義的函數或方法'split'。請指出。 – Jeiman 2012-01-11 00:19:34
對不起。顯然,拆分已被棄用。我會相應地更新我的答案。 – 2012-01-11 02:34:36