Creating new table from another table
126 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Benedikt Skurk
am 26 Mai 2021
Bearbeitet: Vlatko Milic
am 6 Mai 2022
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!!!
2 Kommentare
Akzeptierte Antwort
Scott MacKenzie
am 26 Mai 2021
Bearbeitet: Scott MacKenzie
am 26 Mai 2021
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 Kommentare
Vlatko Milic
am 6 Mai 2022
Bearbeitet: Vlatko Milic
am 6 Mai 2022
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
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu Tables finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!