如何替换元胞数组中的元素?

How do I replace an element from a cell array?

我有一个元胞数组:

A = {NaN, ‘k’, ‘m’, ‘n’}

我想用 NaN 替换 A 中除第 3 个元素以外的所有元素以获得

B = {NaN, NaN, ‘m’, NaN}

拜托 help/suggestions 我该如何解决这个问题?另外,是否可以用一行代码做到这一点?

您可以创建一个全部为 NaN 的新数组,然后将第三个元素替换为初始元胞数组中的值

B = num2cell(nan(size(A));
B(3) = A(3);

或者,您可以用以下方法覆盖其他值:

B = A;
B([1 2 4]) = {NaN};

就单行代码而言,行数无关紧要。重要的是可读性和性能。这两个东西跟行数没有必然的关系。