MATLAB 索引矩阵元胞数组中的所有元胞
MATLAB indexing all the cells in a cell array of matrices
我有一个元胞数组,其中每个元胞包含一个矩阵(不同大小)。例如,我想获取矩阵的所有第二列,提供如下命令:
aux = cArray{:}(:,2)
我想要获得的结果是一个元胞数组,其中每个元胞都包含原始矩阵的第二列,但该命令不起作用(我什至可以理解为什么,因为 cArray{ :} 不是矩阵...)
是否有一个紧凑的命令来获得我想要的而不是循环填充元胞数组?
它不起作用的原因是使用 {:}
索引元胞数组会生成 comma-separated list,它不再可索引。您可以将其视为以逗号分隔的元胞数组的 "unwrapped" 内容。
你可以通过cellfun
实现你想要的:
result = cellfun(@(x) x(:,2), cArray, 'uniformoutput', false);
这会将匿名函数 @(x) x(:,2)
应用于每个单元格的内容,并将结果打包到一个单元格数组中。
我有一个元胞数组,其中每个元胞包含一个矩阵(不同大小)。例如,我想获取矩阵的所有第二列,提供如下命令:
aux = cArray{:}(:,2)
我想要获得的结果是一个元胞数组,其中每个元胞都包含原始矩阵的第二列,但该命令不起作用(我什至可以理解为什么,因为 cArray{ :} 不是矩阵...) 是否有一个紧凑的命令来获得我想要的而不是循环填充元胞数组?
它不起作用的原因是使用 {:}
索引元胞数组会生成 comma-separated list,它不再可索引。您可以将其视为以逗号分隔的元胞数组的 "unwrapped" 内容。
你可以通过cellfun
实现你想要的:
result = cellfun(@(x) x(:,2), cArray, 'uniformoutput', false);
这会将匿名函数 @(x) x(:,2)
应用于每个单元格的内容,并将结果打包到一个单元格数组中。