Access data from table and assign to variables
5 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Dhananjay Singh
le 27 Août 2021
Réponse apportée : Campion Loong
le 30 Août 2021
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 commentaires
Stephen23
le 27 Août 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?
Réponse acceptée
Ive J
le 27 Août 2021
Modifié(e) : Ive J
le 27 Août 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)
Plus de réponses (1)
Campion Loong
le 30 Août 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 commentaires
Voir également
Catégories
En savoir plus sur LaTeX dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!