在评估一列之后从单元阵列创建新矩阵。

时间:2013-06-11 15:56:24

标签: matlab

我有一个447 * 1尺寸的单元阵列。单元阵列具有double类型的不同维度的二维数组。我想检查该单元格数组中的特定值,并在此基础上将其存储在新的Matrix中。

所以例如我的起始单元格数组是Y {447 * 1}。我的第一个单元格包含一个数组 5 * 10和第二阵列包含22 * 10的数据。我想评估第二列 该数组然后将其存储在新的Matrix中。

我为一组数据做了这个,代码看起来像这样。

A = [y{2,1}(1:20,2),y{4,1}(1:20,2),y{6,1}(1:20,2),y{8,1}(1:20,2),...
    y{10,1}(1:20,2),y{12,1}(1:20,2),y{14,1}(1:20,2),y{16,1}(1:20,2),...
    y{18,1}(1:20,2),y{20,1}(1:20,2),y{22,1}(1:20,2),y{24,1}(1:20,2),...
    y{26,1}(1:20,2),y{28,1}(1:20,2),y{30,1}(1:20,2)];

但我希望自动化这件事。请帮助我们如何做到这一点。

1 个答案:

答案 0 :(得分:1)

有些事情:

Temp = cellfun(@(x) x(1:20,2),Y(1:2:end,1), 'UniformOutput', false);
A = cat(2,Temp{:});

如果我正确地阅读你的问题,它应该有用 - 无论如何它应该复制你的例子。 然后,您可以更改@(x)函数x(1:20,2)的尺寸以从单元格数组中取出不同的值,并对Y(:,1)使用不同的单元格索引来选择Y的不同部分。