How do I import a .itp file from molecular dynamics simulation

4 次查看(过去 30 天)
I have been trying to import a .itp file from molecular dynamics simulation but the format specifications seems not work.
Below is the sample code I a have been trying to utilize.
close all; clear all; clc;
filename = 'Input correct filename';
path = 'Input correct Path';
a = [path '/' filename];
readstartrow = 16; % start reading after row 16
fileID = fopen(a);
format = '%d%5s%5d%5s%5s%5d%8.2f%8.4f%8s%8.4f%*[^ ;]'; % Format specs for the
All = textscan(fileID,format, 100,'Delimiter','','WhiteSpace', '', 'EmptyValue' ,NaN,'HeaderLines', readstartrow,'ReturnOnError', false);
fclose(fileID)
I have attached a screenshot of how the file appears

采纳的回答

Anthony Owusu-Mensah
编辑:Anthony Owusu-Mensah 2020-2-24
Path = 'Type in the correct path'
filename = 'Input the correct filename'
fileloc =[Path '/' filename];
fileID = fopen(fileloc); %openFile for reading
readstartrow = 16; %skip the first 16 rows
natoms = 134; % number of atoms in POPC file
format = '%10d%15s%8d%8s%8s%8d%8.2f%8.3f%10s%4.4f%*[^\n]';
AllColumns = textscan(fileID, format, natoms, 'Delimiter', '',...
WhiteSpace', '', 'EmptyValue' ,NaN,'HeaderLines', readstartrow, 'ReturnOnError', false); %Reads all columns of POPC.itp file
fclose(fileID);
charge = AllColumns{7}; %Returns all charges

更多回答(1 个)

Walter Roberson
Walter Roberson 2020-2-22
>> celldisp(textscan('; qtot', '%8s'))
ans{1}{1} =
;
ans{1}{2} =
qtot
When you use %s without a width, scanning stops at the first whitespace or delimiter.
When you use %s with a width, scanning stops at the first whitespace or delimiter, or the width, whichever happens first.
You cannot use %s with or without a width to read exactly a certain number of characters.
You can use %c with a width to read exactly that many characters (partial reads at the end of input are discarded though.)

类别

Help CenterFile Exchange 中查找有关 Biological Physics 的更多信息

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by