【问题标题】:Retrieve first value from cell array of cells从单元格数组中检索第一个值
【发布时间】:2014-11-20 17:51:20
【问题描述】:
我有一个元胞数组...
data = {1x16}
{1x16}
{1x16}
我正在尝试从每个单元格中检索第一个值。但是当我这样做时
data{:}(1)
我最终得到一个错误提示
Bad cell reference operation.
首先,为什么我不应该被允许这样做有充分的理由吗?其次,有没有办法解决这个问题?
干杯!
本
【问题讨论】:
标签:
arrays
matlab
cell
cell-array
【解决方案1】:
对于1D 元胞数组 -
first_vals = arrayfun(@(n) data{n}(1),1:numel(data))
这应该适用于一般情况 -
first_vals = reshape(arrayfun(@(n) data{n}(1),1:numel(data)),size(data))
【解决方案2】:
我更喜欢使用简单的 for 循环:
例如,这会起作用:
data = [{[1:16]}; {[17:32]}; {[33:48]}];
b= []
for i=1:length(data)
b = [b data{i,1}(1)];
end