Access data from table and assign to variables
5 次查看(过去 30 天)
显示 更早的评论
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 个评论
Stephen23
2021-8-27
"...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?
采纳的回答
Ive J
2021-8-27
编辑:Ive J
2021-8-27
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)
更多回答(1 个)
Campion Loong
2021-8-30
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 个评论
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 LaTeX 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!