1

我有一个 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,但我不确定如何测试它是否真的在做我认为应该做的事情。谁能告诉我如何获得我想要的输出?或者验证我在做什么是正确的?

谢谢!

4

2 回答 2

3

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

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

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

于 2014-01-07T05:22:50.960 回答
0

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

min(cell2mat(psdMonth.'))
于 2014-01-07T11:31:49.417 回答