在点符号 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

耶!