获取1x31单元格中的最小和最大列数

时间:2014-01-07 01:18:28

标签: matlab cell-array minmax

我有一个1x31的单元格数组psdMonth,每个单元格在Matlab中为1x114 int 32。我想取每个单元格的所有列中的最小值来获得最小值为1x114 int 32的复合最小值。所以我希望最小值为psdMonth {1}(1)...... psdMonth {31 }(1),然后是psdMonth的最小值{1}(2).... pdMonth {31}(2)等。

我曾经尝试过这样的事情:

 minpsdMonth = min(cat(1,psdMonth{:}))

确实创建了1x114 int32,但我不确定如何测试它是否实际上正在做我认为它应该做的事情。任何人都可以告诉我如何获得我想要的输出?或者验证我正在做的事情是否正确?

谢谢!

2 个答案:

答案 0 :(得分:3)

你所做的应该是正确的。更通用的方法是使用cellfun

mi = cellfun(@min,psdMonth);
ma = cellfun(@max,psdMonth);

当每个单元格中的数组大小不同时,这也会起作用。

答案 1 :(得分:0)

我认为你的方法是正确的。另一种可能性是

min(cell2mat(psdMonth.'))