我有一个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,但我不确定如何测试它是否实际上正在做我认为它应该做的事情。任何人都可以告诉我如何获得我想要的输出?或者验证我正在做的事情是否正确?
谢谢!
答案 0 :(得分:3)
你所做的应该是正确的。更通用的方法是使用cellfun
:
mi = cellfun(@min,psdMonth);
ma = cellfun(@max,psdMonth);
当每个单元格中的数组大小不同时,这也会起作用。
答案 1 :(得分:0)
我认为你的方法是正确的。另一种可能性是
min(cell2mat(psdMonth.'))