Из вашего ответа, с какой-то поэтической лицензией, похоже, что вы используете текстовое сканирование со строкой %s %u %u %u %u %u %u %u %u %u %u %u
для чтения в файле.Я создал файл с несколькими случайными числами, пытаясь эмулировать ситуацию:
date time, P01,P02, P03, P04, P05, P06, P07, P08, P09, P10, P11
8/16/2009 0:00,51,45,46,54,53,52,524,5,399,89,78
8/16/2009 0:01,11,73,65,67,10,32,100,64,167,87,48
8/16/2009 0:02,20,58,89,15,30,67,113,76,409,55,26
8/16/2009 0:03,89,33,33,58,90,61,545,51,88,23,34
8/16/2009 0:04,33,9,92,43,86,97,345,20,369,38,29
8/16/2009 0:06,24,86,74,38,38,90,16,48,197,34,75
8/16/2009 0:07,59,86,67,30,7,54,135,8,231,66,19
8/16/2009 0:08,47,11,74,30,30,60,302,49,200,59,40
8/16/2009 0:09,76,50,66,48,92,2,598,83,336,26,34
8/16/2009 0:10,97,12,38,62,54,63,437,32,480,85,53
8/16/2009 0:11,30,78,6,98,98,21,375,50,72,87,15
8/16/2009 0:12,3,63,2,30,14,7,436,100,406,9,55
8/16/2009 0:13,43,19,32,8,31,20,426,29,296,97,50
8/16/2009 0:16,83,1,75,66,43,43,356,40,496,86,68
8/16/2009 0:17,24,69,67,40,81,23,526,36,104,73,10
8/16/2009 0:18,47,28,37,97,31,19,546,73,381,87,8
8/16/2009 0:19,73,38,92,81,21,63,227,50,463,91,74
8/16/2009 0:20,20,56,12,76,79,67,358,47,234,89,57
Это похоже на то, что у вас есть?Весь ряд (0:05, 0:14, 0:15) отсутствует?Тогда что вы хотите сделать, это заполнить пропущенные строки нулями, где ваши данные должны быть такими:
date time, P01,P02, P03, P04, P05, P06, P07, P08, P09, P10, P11
8/16/2009 0:00,51,45,46,54,53,52,524,5,399,89,78
8/16/2009 0:01,11,73,65,67,10,32,100,64,167,87,48
8/16/2009 0:02,20,58,89,15,30,67,113,76,409,55,26
8/16/2009 0:03,89,33,33,58,90,61,545,51,88,23,34
8/16/2009 0:04,33,9,92,43,86,97,345,20,369,38,29
0,0,0,0,0,0,0,0,0,0,0,0
8/16/2009 0:06,24,86,74,38,38,90,16,48,197,34,75
8/16/2009 0:07,59,86,67,30,7,54,135,8,231,66,19
8/16/2009 0:08,47,11,74,30,30,60,302,49,200,59,40
8/16/2009 0:09,76,50,66,48,92,2,598,83,336,26,34
8/16/2009 0:10,97,12,38,62,54,63,437,32,480,85,53
8/16/2009 0:11,30,78,6,98,98,21,375,50,72,87,15
8/16/2009 0:12,3,63,2,30,14,7,436,100,406,9,55
8/16/2009 0:13,43,19,32,8,31,20,426,29,296,97,50
0,0,0,0,0,0,0,0,0,0,0,0
0,0,0,0,0,0,0,0,0,0,0,0
8/16/2009 0:16,83,1,75,66,43,43,356,40,496,86,68
8/16/2009 0:17,24,69,67,40,81,23,526,36,104,73,10
8/16/2009 0:18,47,28,37,97,31,19,546,73,381,87,8
8/16/2009 0:19,73,38,92,81,21,63,227,50,463,91,74
8/16/2009 0:20,20,56,12,76,79,67,358,47,234,89,57
Мое предположение в этом решении состоит в том, что файл должен быть суммой разности между каждым разом.шаг, который позволяет вам файлы, которые не всегда будут иметь статический размер (т. е. 144).Я вытянул время для вектора и сделал остальные данные матрицей, а не ячейкой, но, как вы можете видеть, это было бы легко исправить с помощью решения для ячейки:
fid = fopen('data2.csv', 'rt');
data = textscan(fid, ['%s' repmat('%u',1,11)], 'HeaderLines', 1, 'Delimiter', ',');
fclose(fid);
%//Make time a datenum of the first column
time = datenum(data{1}, 'mm/dd/yyyy HH:MM');
%//Find the difference in minutes from each row
timeDiff = round(diff(datenum(time))*24*60);
%//the rest of the data
data = cell2mat(data(2:12));
for i=1:length(timeDiff)
if timeDiff(i) > 1
%//there's are missing rows, make a gap
data = [data(1:i,:); repmat(0,timeDiff(i)-1,11);data(i+1:end,:)];
end
end
* 1010И, наконец, вывод:
data =
51 45 46 54 53 52 524 5 399 89 78
11 73 65 67 10 32 100 64 167 87 48
20 58 89 15 30 67 113 76 409 55 26
89 33 33 58 90 61 545 51 88 23 34
33 9 92 43 86 97 345 20 369 38 29
0 0 0 0 0 0 0 0 0 0 0
24 86 74 38 38 90 16 48 197 34 75
59 86 67 30 7 54 135 8 231 66 19
47 11 74 30 30 60 302 49 200 59 40
76 50 66 48 92 2 598 83 336 26 34
97 12 38 62 54 63 437 32 480 85 53
30 78 6 98 98 21 375 50 72 87 15
3 63 2 30 14 7 436 100 406 9 55
0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0
43 19 32 8 31 20 426 29 296 97 50
83 1 75 66 43 43 356 40 496 86 68
24 69 67 40 81 23 526 36 104 73 10
47 28 37 97 31 19 546 73 381 87 8
73 38 92 81 21 63 227 50 463 91 74
20 56 12 76 79 67 358 47 234 89 57