删除单元格数组中的各个元素

时间:2015-01-22 19:39:42

标签: arrays matlab cell-array

我有一个100 X 1(n1)的单元格数组,每个单元格保存较大数据集(100 X 100,n2)的索引。我创建了一个嵌套循环,以便访问每个单独的元素(索引),并将这些索引的另一个数据集的值与if条件进行比较。如果条件成功,我想将该元素从原始单元格数组中删除到新的单元格数组中。但是当我在matlab中将元素设置为[]时,单元格数组的值不会改变。代码如下:

for i = 1:length(n1)
    for j = 1:length(n1{i, 1})
        if n2(i,n1{i,1}(1,j)) > n3(i) && n2(i, n1{i,1}(1,j)) > n4(n1{i, 1}(1, j))
            n1{i,1}(1,j) == [];
        end                          
    end
end

1 个答案:

答案 0 :(得分:2)

我认为n1(i,1)总是一个行向量,所以你应该使用

n1{i,1}(j) = [];

如果n1(i,1)不是列或行,则从中间删除元素是不可能的。

例如:

A = {[1 2 3],[5 8 9]}
A{1,2}(1,2) = []

给出错误:A null assignment can have only one non-colon index

但是A{1,2}(2) = []是好的。