开发者

MATLAB: vectorized assignment from double array to cell array

I have three arrays, all the same size:

xout        % cell array
xin         % numeric array of doubles
b           % logical array

How can I take the elements of xin that correspond to the indices where b is true, and assign them to the corresponding place开发者_如何学Gos in 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.


You should use the function num2cell to convert the right hand side to a cell array before assigning it to xout:

xout(b) = num2cell(xin(b));
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜