从matlab中的单元格数组访问元素
Access elements from cells arrays in matlab
假设我有一个元胞数组(命名为 'data'),如下所示:
'k0' 'k1' 'Agg' 'RH' 'AQ' 'fr' 'frac' 'Cel' 'R_A' 'Tot' 'AO'
1.15 1.1574 1.50 0.99 0.090 3.45 1.10 1 11x2 double 11x2 double 11x2 double
如何从列中获取最后一个元素或我想要的任何元素
'frac' 'Cel' 'R_A'
11x2 double 11x2 double 11x2 double
我尝试使用 data{:,9}(end) 从列 'frac' 中获取最后一个元素,但没有成功。
问题是 data{:,9}
returns 两个元素。
data{:,9}
% ans =
% 'R_A'
%
% ans =
% 11 x 2 double
因此,之后使用 (end)
进行索引将无法正常工作。看起来您只想要 second 行而不是全部。所以这样的事情应该有效:
data{2,9}(end)
如果您做想要第 9 列所有内容的最后一个元素,那么您需要使用 cellfun
为您做这件事。
values = cellfun(@(x)x(end), data(:,9), 'uniform', 0);
假设我有一个元胞数组(命名为 'data'),如下所示:
'k0' 'k1' 'Agg' 'RH' 'AQ' 'fr' 'frac' 'Cel' 'R_A' 'Tot' 'AO'
1.15 1.1574 1.50 0.99 0.090 3.45 1.10 1 11x2 double 11x2 double 11x2 double
如何从列中获取最后一个元素或我想要的任何元素
'frac' 'Cel' 'R_A'
11x2 double 11x2 double 11x2 double
我尝试使用 data{:,9}(end) 从列 'frac' 中获取最后一个元素,但没有成功。
问题是 data{:,9}
returns 两个元素。
data{:,9}
% ans =
% 'R_A'
%
% ans =
% 11 x 2 double
因此,之后使用 (end)
进行索引将无法正常工作。看起来您只想要 second 行而不是全部。所以这样的事情应该有效:
data{2,9}(end)
如果您做想要第 9 列所有内容的最后一个元素,那么您需要使用 cellfun
为您做这件事。
values = cellfun(@(x)x(end), data(:,9), 'uniform', 0);