Используйте mat2cell в качестве двигателя. Я предполагаю, что вы хотите агрегировать результаты второго столбца вашего массива профиля пациента, как функцию первого столбца. Если профиль находится в массиве с именем PP:
counts = [6;4;10];
C = mat2cell(PP(:,2),counts)
C =
[ 6x1 double]
[ 4x1 double]
[10x1 double]
Обратите внимание, что этот шаг выполнил работу по извлечению данных в отдельные ячейки.
C{:}
ans =
2
3
-2
1
3
2
ans =
-1
-3
0
-2
ans =
2
2
1
3
2
-1
-2
-3
-2
-2
Если бы PP не был отсортирован заранее, нам нужно было бы отсортировать по первому столбцу PP. Поэтому все, что нам нужно сделать, это узнать, сколько записей соответствует каждому пациенту. Это задача, которую может выполнить accmarray.
counts = accumarray(PP(:,1),1)
counts =
6
4
10
Наконец, если бы список идентификаторов пациентов был более сложным, чем цифры (1: 3), обращение к уникальному решило бы эту проблему для вас.