假设我有3名患者的配置文件,但配置文件的长度不同.我的问题是如何从这个数据创建一个单元格数组(见下文),其中我的单元格数组的每个条目将对应一个患者配置文件.谢谢
病人资料
1 2
1 3
1 -2
1 1
1 3
1 2
2 -1
2 -3
2 0
2 -2
3 2
3 2
3 1
3 3
3 2
3 -1
3 -2
3 -3
3 -2
3 -2
Run Code Online (Sandbox Code Playgroud)
小智 5
使用mat2cell作为引擎.我假设您想要汇总患者配置文件数组的第二列的结果,作为第一列的函数.如果配置文件位于名为PP的数组中:
counts = [6;4;10];
C = mat2cell(PP(:,2),counts)
C =
[ 6x1 double]
[ 4x1 double]
[10x1 double]
Run Code Online (Sandbox Code Playgroud)
看到这一步已完成将数据提取到单独的单元格中的工作.
C{:}
ans =
2
3
-2
1
3
2
ans =
-1
-3
0
-2
ans =
2
2
1
3
2
-1
-2
-3
-2
-2
Run Code Online (Sandbox Code Playgroud)
如果没有事先对PP进行分类,我们就需要对PP的第一列进行排序.因此,我们需要做的就是知道每个患者对应的条目数.这是accumarray可以处理的任务.
counts = accumarray(PP(:,1),1)
counts =
6
4
10
Run Code Online (Sandbox Code Playgroud)
最后,如果患者标识符列表比数字(1:3)更复杂,那么对unique的调用将为您解决该问题.