【发布时间】:2013-02-28 13:36:18
【问题描述】:
我目前正在 Matlab 中从事一个项目,其中我有一个单元数组。第一个元胞数组长 464 列,深 1 行。这些单元中的每一个都是另一个 96 列和 365 行的单元阵列。我需要能够获得 464 个数组中每个数组的 96 列的平均值,并将 464 个数组中的每个数组放在一个称为均值的新数组中的不同行上。我试图编写代码来只做一列如下:
mean = Homes{1,1}(1:)
但是当我尝试运行这段代码时,我得到了以下错误:
mean = Homes{1,1}(1:)
|
Error: Unbalanced or unexpected parenthesis or bracket.
基本上,我的最终数组名称意味着需要 96 列乘 464 行。我被困住了,真的可以使用你的帮助。
谢谢。
【问题讨论】:
-
(1:)肯定不行,你可以试试(1,:)。我永远不知道如何处理单元阵列。我认为如果你在顶部单元格数组中放置一个循环并将每个单元格分配给一个临时变量,你肯定可以得到一个平均值。 -
尝试使用 cellfun。您可以试试 cellfun(@mean,Homes),这会将 mean 函数应用于元胞数组中的每个元素。
-
当我尝试 cellfun(@mean,Homes) 时,我收到了这条消息...均值误差(第 28 行)y = sum(x)/size(x,dim);
-
现在当我尝试。 Mean = mean(Homes{1,1}(:,1)) 我收到以下错误。我不确定为什么。 'cell' 类型的输入参数的未定义函数 'sum'。均值误差(第 28 行)y = sum(x)/size(x,dim);然而,当我输入 Homes{1,1}(:,1) 时,第一列会返回给我。
标签: matlab multidimensional-array mean cell-array