MATLAB:从双数组到单元数组的矢量化赋值

问题描述 投票:4回答:1

我有三个数组,大小相同:

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.
matlab cell vectorization
1个回答
6
投票

在将其分配给num2cell之前,您应该使用函数xout将右侧转换为单元格数组:

xout(b) = num2cell(xin(b));
© www.soinside.com 2019 - 2024. All rights reserved.