我有一个行数组X
和一个单元格C = {[1 3 4] [2 6]}
。我想使用C
作为索引从x. The result should be
{[x(1)x(3)x(4)] [x(2)x(6)]} {{1 x(C)`但它不起作用。我怎样才能做到这一点?
答案 0 :(得分:1)
首先使用cell2mat http://www.mathworks.de/de/help/matlab/ref/cell2mat.html 你可能还需要重塑
>> C = {[1 3 4] [2 6]}
C =
[1x3 double] [1x2 double]
>> A = cell2mat(C)
A =
1 3 4 2 6
现在您可以使用x(C)或一行
Y=x(cell2mat(C))
答案 1 :(得分:1)
result = mat2cell(x([C{:}]), 1, cellfun(@numel, C));
答案 2 :(得分:0)
以下是执行此寻址的另一种单行方式:
Y = X([C{:}]);
修改强>
由于您需要与C相同的单元格结构,因此这是第二种解决方案:
Y = cellfun(@(a) X(a),C,'UniformOutput',false);
答案 3 :(得分:0)
Per Bentoy13 的建议就是这样做:
cell(cellfun(@(a) x(a)',C,'UniformOutput',false))