在点符号 Matlab 中使用字符串
Using Strings in dot notation Matlab
我希望访问 table 中包含字符串的点表示法中的数据。我有一个字符串列表,表示 table 中感兴趣的列。如何使用这些字符串访问数据?我希望创建一个遍历字符串列表的循环。
例如 table T
我有列 {a b c d e}
。我有一个 1x3 的单元格 cols={b d e}
.
我可以使用 cols
格式(或等效格式)T.cols(1)
检索数据,以获得与 T.b
相同的结果吗?
您可以使用{大括号}和字符串作为列索引直接获取数据,就像获取元胞数组一样。
例如,让我们创建一个虚拟 table(根据文档修改):
clc;
close all;
LastName = {'Smith';'Johnson';'Williams';'Jones';'Brown'};
a = [38;43;38;40;49];
b = [71;69;64;67;64];
c = [176;163;131;133;119];
d = [124 93; 109 77; 125 83; 117 75; 122 80];
T = table(a,b,c,d,...
'RowNames',LastName)
table 看起来像这样:
T =
a b c d
__ __ ___ __________
Smith 38 71 176 124 93
Johnson 43 69 163 109 77
Williams 38 64 131 125 83
Jones 40 67 133 117 75
Brown 49 64 119 122 80
现在 select 感兴趣的列并获取数据:
%// Select columns of interest
cols = {'a' 'c'};
%// Fetch data
T{:,cols}
ans =
38 176
43 163
38 131
40 133
49 119
耶!
我希望访问 table 中包含字符串的点表示法中的数据。我有一个字符串列表,表示 table 中感兴趣的列。如何使用这些字符串访问数据?我希望创建一个遍历字符串列表的循环。
例如 table T
我有列 {a b c d e}
。我有一个 1x3 的单元格 cols={b d e}
.
我可以使用 cols
格式(或等效格式)T.cols(1)
检索数据,以获得与 T.b
相同的结果吗?
您可以使用{大括号}和字符串作为列索引直接获取数据,就像获取元胞数组一样。
例如,让我们创建一个虚拟 table(根据文档修改):
clc;
close all;
LastName = {'Smith';'Johnson';'Williams';'Jones';'Brown'};
a = [38;43;38;40;49];
b = [71;69;64;67;64];
c = [176;163;131;133;119];
d = [124 93; 109 77; 125 83; 117 75; 122 80];
T = table(a,b,c,d,...
'RowNames',LastName)
table 看起来像这样:
T =
a b c d
__ __ ___ __________
Smith 38 71 176 124 93
Johnson 43 69 163 109 77
Williams 38 64 131 125 83
Jones 40 67 133 117 75
Brown 49 64 119 122 80
现在 select 感兴趣的列并获取数据:
%// Select columns of interest
cols = {'a' 'c'};
%// Fetch data
T{:,cols}
ans =
38 176
43 163
38 131
40 133
49 119
耶!