如何在MATLAB中将空矩阵分配给单元数组的元素?

3

我想操作一个单元数组,并使单元数组的某些索引包含空矩阵[]。我似乎无法弄清如何做到这一点:

>> yy=num2cell(1:10)

yy = 

  [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    [10]

>> yy{1:2:end}=[]
??? The right hand side of this assignment has too few values to satisfy
 the left hand side.
>> yy(1:2:end) = []

yy = 

  [2]    [4]    [6]    [8]    [10]

啊!似乎无法做我想要的事情。我希望在单元数组中留下空元素,例如:

  []    [2]    []    [4]    []    [6]    []    [8]    []    [10]

有什么建议吗?我的索引向量可以是任意的,可以是索引形式或布尔形式,不一定是[1 3 5 7 9]。

1个回答

7
你可以通过使用 () 索引单元格数组(而不是其中的内容),并将每个单元格更改为空单元格 {[]} 来实现:
yy(1:2:end) = {[]};

另一种选择是使用DEAL函数,但它看起来有些丑陋:

[yy{1:2:end}] = deal([]);

哇哦!gnovice再次发挥作用。我们得称呼您为“gexpert”。 - Jason S
2
我必须先成为“中间人”。 ;) - gnovice

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接