Is there any more efficient way to split a table than this
    11 views (last 30 days)
  
       Show older comments
    
I am trying to split the table datatable into 3 smaller tables t1, t2 and t3, based on the value of the variable 'solar' in 'datatable'. accoding to three ranges:
 (60-120) , (121-170) , (171<).
I did the following and its working fine but the issue is its slow and inifecient so How can I modify it to make it faster?
for ii=1:size(datatable)
    if(datatable.solarT(ii)>=60 && datatable.solarT(ii)<=120)
        t1(ii,:)=datatable(ii,:);
        t11 = rmmissing(t1);
    elseif(datatable.solarT(ii)>=121 && datatable.solarT(ii)<=170)
        t2(ii,:)=datatable(ii,:);
        t22 = rmmissing(t2);
    else
        t3(ii,:)=datatable(ii,:);
        t33 = rmmissing(t3);
    end 
   end 
thank you in advance,
0 Comments
Accepted Answer
  the cyclist
      
      
 on 18 Oct 2021
        % Set random seed for reproducibility
rng default
% Make up a table with pretend data
N = 30;
x = rand(N,1);
solar = 200*rand(N,1);
dataTable = table(x,solar);
% Define t1 based on restricted range of table value
t1 = dataTable((dataTable.solar>=60)&(dataTable.solar<=120),:)
More Answers (0)
See Also
Categories
				Find more on Develop Apps Using App Designer in Help Center and File Exchange
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!
