Access data from table and assign to variables
    11 views (last 30 days)
  
       Show older comments
    
Hi, I am making a program with excel file already converted to table  and now I need to code such that when a user gives an input a certain coloumn is taken and then assign certain variables to some particular blocks in that row.
example:
Vehicle         speed               fuel
Car                 50                    2
Bike                20                    1
Cycle                5                      0
Like user gives input as Bike. then I need to assign variables created like speed and fuel to use in further equations.
4 Comments
  Stephen23
      
      
 on 27 Aug 2021
				"...then I need to assign variables created like speed and fuel to use in further equations."
Why not just access the data directly from the table?
Accepted Answer
  Ive J
      
 on 27 Aug 2021
        
      Edited: Ive J
      
 on 27 Aug 2021
  
      This might work
tab = table({'Car'; 'Bike'; 'Cycle'}, [50; 20; 5], [2; 1; 0],...
    'VariableNames', {'Vehicle', 'speed', 'fuel'})
filterIn = 'Bike'; %input('what to filter? ', 's');
idx = ismember(tab.Vehicle, filterIn);
if ~any(idx)
    fprintf('oops, not found!\n')
    return
end
dataTable = tab(idx, :);
dataStruct = table2struct(dataTable, 'ToScalar', true);
as table:
disp(dataTable)
or struct:
disp(dataStruct)
More Answers (1)
  Campion Loong
    
 on 30 Aug 2021
        Picking up from @Ive J's example, but use 'Vehicle' as Row Labels to take advantage of native table indexing:
t = table([50; 20; 5], [2; 1; 0], 'VariableNames', ["speed", "fuel"], 'RowNames', ["Car"; "Bike"; "Cycle"])
t("Bike", ["speed", "fuel"])    % or if you want all variables, t("Bike", :)
0 Comments
See Also
Categories
				Find more on Tables 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!



