function with text string input and excel file
2 次查看(过去 30 天)
显示 更早的评论
How can I write a function that takes input of (filename, user_input)... basically the user input would be a text string that will return the values of the corresponding string from the excel sheet.
ex: i want to get info from car model x so my input is 'x' then it returns the following:
car model color HorsePower Mileage
x red 250 20
0 个评论
采纳的回答
Voss
2022-5-19
warning off all
get_car_info('Cars.xlsx','x')
get_car_info('Cars.xlsx','y')
get_car_info('Cars.xlsx','z')
function out = get_car_info(filename,model)
T = readtable(filename);
% two ways, depending on what the input files might look like:
% 1) this finds where the user-input "model" is located in the first
% column of the table, which may or may not be called "carModel":
out = T(strcmp(T{:,1},model),:);
% 2) this finds where the user-input "model" is located in "carModel"
% column of the table, which may or may not be the first column:
out = T(strcmp(T.carModel,model),:);
end
4 个评论
Voss
2022-5-19
Including an error check for unmatched specified model:
function out = get_car_info(filename,model)
if ~nargin
error('not enough input arguments'); % error if no inputs
elseif nargin < 2
model = 'x'; % default model value if only one input
end
T = readtable(filename);
% two ways, depending on what the input files might look like:
% 1) this finds where the user-input "model" is located in the first
% column of the table, which may or may not be called "carModel":
idx = strcmp(T{:,1},model);
% 2) this finds where the user-input "model" is located in "carModel"
% column of the table, which may or may not be the first column:
idx = strcmp(T.carModel,model);
% in either case, check that there is a valid model match:
if ~any(idx)
error('model %s does not appear in the table',model);
end
% return the sub-table matching model:
out = T(idx,:);
end
更多回答(0 个)
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!