У меня есть несколько текстовых файлов с данными и вы хотите прочитать определенную часть каждого файла (информацию о времени), которая всегда находится в конце первого строка каждого файла. Вот пример:Matlab (textscan), читать символы из указанного столбца и строки
%termo2, 30-Jan-2016 12:27:20
I.e. Я хотел бы получить "12:27:20"
.
Я пробовал использовать textscan
, который я использовал ранее для подобных проблем. Я понял, что есть 3 столбца этой строки, с одним пробелом в качестве разделителя.
Я первый попытался указать их как строки (%s
):
fid = fopen(fname);
time = textscan(fid,'%s %s %s');
Я также попытался указать дату и время, используя формат DATETIME:
time = textscan(fid,'%s %{dd-MMM-yyyy}D %{HH:mm:ss}D')
Оба они просто производят заготовки клетка. (Я также пробовал ряд вариантов, таких как определение разделителя как '', с тем же результатом)
Спасибо за любую помощь!
Вот весь файл (не уверен, что оклейка здесь правильный способ сделать это - я новичок в обоих MATLAB и StackOverflow ..):
%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, но не смог заставить его работать. В конце концов, я сделал это в shell (awk), что было проще для меня, так как я привык работать в unix (но я 'm learning matlab, так что это было по-прежнему полезно) – Neuroguy
@Neuroguy Можете ли вы разместить свой файл? Понятно, что это не так, как вы думаете. – Suever
Я вставлял то, что было в файле, но по какой-то причине некоторые из разрывов строк отсутствуют, поэтому он выглядит по-другому .. во всяком случае, интересуется только верхней строкой, так что, возможно, это будет сделано .. есть ли плата за загрузите настоящий файл здесь? – Neuroguy