访问具有相同前缀的表的列

时间:2016-01-26 10:36:47

标签: matlab

我需要选择名称以localhost开头的MATLAB表的所有列。该表的格式如下:

'data'

有没有办法这样做?像sub. | age | gender | ... | ... | data1 | data2 | data3 | ... | data4 | ... |

这样的东西

2 个答案:

答案 0 :(得分:2)

UIView

答案 1 :(得分:1)

A = rand(10,1);B=rand(10,1);data1=rand(10,1);data2=rand(10,1); %// data to fill the table
MyTable = table(A,B,data1,data2); %// create the table
VarNames = MyTable.Properties.VariableNames; %// get column names
DataCols = strfind(VarNames,'data'); %// find the cells containing 'data' in the name
kk=1; %// initialise counter
for ii = 1:numel(DataCols)
    if DataCols{ii}==1
        dataIdx(kk)=ii; %// if data exists, then store the index
        kk = kk+1;
    end
end

您可以使用MyTable.Properties.VariableNames获取表格中变量名称的单元格数组。然后strfind找到包含短语'data'的所有单元格。然后我使用一个循环来检查每个单元格是否包含1,即'data',或者不是cellfun,尽管这也可以用cellfun 完成,但我对{{{{}}不太熟悉1}}让它发挥作用。