Creating new table from another table
    73 ビュー (過去 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 件)
参考
カテゴリ
				Help Center および File Exchange で Tables についてさらに検索
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!




