데이터가있는 텍스트 파일이 여러 개 있고 각 파일의 특정 부분 (시간 정보)을 읽고 싶습니다.이 파일은 항상 첫 번째 파일의 끝에 있습니다 각 파일의 행. 다음은 그 예입니다 :Matlab (textscan), 지정된 열과 행의 문자 읽기
%termo2, 30-Jan-2016 12:27:20
즉. "12:27:20"
을 받고 싶습니다.
비슷한 문제에 대해 이전에 사용한 textscan
을 사용해 보았습니다. 나는이 행의 3 개의 열과 단락 문자로 된 하나의 공백이 있다고 생각했다.
내가 먼저 (%s
) 문자열로 다음을 지정하려고 :
time = textscan(fid,'%s %{dd-MMM-yyyy}D %{HH:mm:ss}D')
이 두 그냥 빈을 생산 :
fid = fopen(fname);
time = textscan(fid,'%s %s %s');
나는 또한 날짜 형식을 사용하여 날짜와 시간을 지정하려 세포. (나는 같은 결과로 구분 기호를 ''와 같이 정의하는 등 많은 변형을 시도했다.)
어떤 도움을 주셔서 감사합니다!
가 여기에 전체 파일이다 (여기서하지 않도록 붙여 넣기이 작업을 수행하려면 올바른 방법입니다 - 내가 MATLAB과 유래 모두 새로운 해요 ..) :
%termo2, 30-Jan-2016 12:27:20
%
%102
%
%stimkod stimtyp
% 1 Next:Pain
% 2 Next:Brush
% vaskod text
% 1 Obeh -> Beh
% 2 Inte alls intensiv -> Mycket intensiv
% stimnr starttid stimkod vaskod VASstart VASmark VAS
1 78.470 2 1 96.470 100.708 6.912
1 78.470 2 2 96.470 104.739 2.763
2 138.822 1 2 156.821 162.619 7.615
2 138.822 1 1 156.821 166.659 2.496
3 199.117 2 2 217.116 222.978 2.897
3 199.117 2 1 217.116 224.795 5.773
4 258.612 2 1 276.612 280.419 5.395
4 258.612 2 2 276.612 284.145 4.622
5 320.068 1 1 338.068 340.689 4.396
5 320.068 1 2 338.068 346.090 2.722
6 377.348 1 2 395.347 398.809 6.336
6 377.348 1 1 395.347 404.465 3.391
7 443.707 2 1 461.707 464.840 6.604
7 443.707 2 2 461.707 473.703 3.652
8 503.122 1 2 521.122 526.009 4.285
8 503.122 1 1 521.122 529.808 3.646
9 568.546 2 2 586.546 586.546 5.000
9 568.546 2 1 586.546 595.496 6.412
10 629.953 2 1 647.953 650.304 7.034
10 629.953 2 2 647.953 655.600 6.615
11 694.305 1 1 712.305 714.416 4.669
11 694.305 1 2 712.305 721.079 2.478
12 751.537 2 2 769.537 773.511 7.307
12 751.537 2 1 769.537 777.423 8.225
13 813.944 1 2 831.944 834.958 7.731
13 813.944 1 1 831.944 839.255 1.363
14 872.448 2 1 890.448 893.829 6.813
14 872.448 2 2 890.448 899.439 2.600
15 939.880 1 2 957.880 963.811 4.332
15 939.880 1 1 957.880 966.603 2.786
16 998.328 2 1 1016.327 1020.707 5.837
16 998.328 2 2 1016.327 1025.275 2.664
17 1062.911 1 2 1080.910 1082.967 2.792
17 1062.911 1 1 1080.910 1088.674 4.094
18 1125.182 1 1 1143.182 1144.379 0.619
18 1125.182 1 2 1143.182 1151.786 8.992
응답 해 주셔서 감사합니다. Regexp와 fgetl을 가지고 놀아 보았지만 작동시키지 못했습니다. 결국, 쉘 (awk)에서 이것을했습니다. 유닉스에서 작업하는 데 익숙해 졌기 때문에 더 쉬웠습니다 (하지만 'm 학습 MATLAB, 그래서 이것은 여전히 유용했다) – Neuroguy
@ Neuroguy 당신은 실제 파일을 게시 할 수 있습니까? 분명히 그것이 당신이 생각하는 것이 아닙니다. – Suever
파일에 붙여 넣었지만 어떤 이유로 줄 바꿈 중 일부가 누락되어 다른 모양으로 나타납니다. 어쨌든 지금은 맨 위 행에만 관심이 있습니다. 아마도 여기에 대한 지불이 있습니다. 실제 파일을 여기에 업로드 하시겠습니까? – Neuroguy