我有三个数组,大小都一样:
xout % cell array
xin % numeric array of doubles
b % logical array
如何取与 b 为真的索引对应的 xin 元素,并将它们分配到 xout 中的相应位置?
>> xout = {'foo', 'bar', 'baz', 'quux'};
>> xin = [1, 2, 3, 4];
>> b = (xin ~= 2); % yields [1 0 1 1] in this case
>> xout{b}=xin(b);
??? The right hand side of this assignment has too few values
to satisfy the left hand side.
>> xout(b)=xin(b);
??? Conversion to cell from double is not possible.
最佳答案
在将其分配给 num2cell
之前,您应该使用函数 xout
将右侧转换为元胞数组:
xout(b) = num2cell(xin(b));
关于MATLAB:从双数组到元胞数组的向量化赋值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1669838/