Creating new table from another table
126 次查看(过去 30 天)
显示 更早的评论
Hello,
i have following problem. I have a 35049x297 table. Now i would like to cut out specific columns with an if command and put these columns in a new table.
VarNames = Daten2.Properties.VariableNames;
for i = 1:columns
if contains(VarNames{1,i},'EN')
newtable{i} = table(Daten2.VarNames{1,i});
end
This is my code but it doesnt work, i dont know why? can someone help me with that? Thanks for the help!!!
采纳的回答
Scott MacKenzie
2021-5-26
编辑:Scott MacKenzie
2021-5-26
You have several problems in your code. The assumtion in your question is that you want to create a new table (newtable) containing columns in the existing table (Daten2) where 'EN' appears in the column name. Here's one way to acheive this:
VarNames = Daten2.Properties.VariableNames;
columns = width(Daten2);
j = 1;
for i = 1:columns
if contains(VarNames{i}, 'EN')
newtable(j) = Daten2(:,i);
newtable.Properties.VariableNames{j} = VarNames{i};
j = j + 1;
end
end
5 个评论
Vlatko Milic
2022-5-6
编辑:Vlatko Milic
2022-5-6
I have a similar problem but cannot manage to solve it. The table I am working with consists of eight columns.Each column has a unique vairable names, but between position 5 and 10 in the variable names, 2 columns have the same variables. Moreover, I want't to create four new tables (with the two matching columns) based on the original table with 8 columns. I have watched your code for inspiration but cannot manage the code to work according to my wishes, see below for code.
I'm helpful for any advice.
names = table.Properties.VariableNames;
matchVals = {'11111', '22222','33333','44444'}; %variable names i want to match
%
columns=width(table) % 8 columns in total
%%
j=1;
for i=1:columns
if contains(names{i}, matchVals)
newtable(:,j) =table(:,i);
newtable.Properties.VariableNames{j} = names{i};
newtable.Properties.VariableNames{:,j} = names{i};
j = j + 1;
end
end
更多回答(0 个)
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!