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

采纳的回答

Voss
Voss 2022-5-19
warning off all
get_car_info('Cars.xlsx','x')
ans = 1×4 table
carModel color HorsePower Mileage ________ _______ __________ _______ {'x'} {'red'} 250 20
get_car_info('Cars.xlsx','y')
ans = 1×4 table
carModel color HorsePower Mileage ________ ________ __________ _______ {'y'} {'blue'} 350 27
get_car_info('Cars.xlsx','z')
ans = 1×4 table
carModel color HorsePower Mileage ________ _________ __________ _______ {'z'} {'green'} 200 36
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 个评论
ML
ML 2022-5-19
Thanks thats reallly helpful. What I meant to aask is what if my input is 'z' but its not there how could I get an error for that?
Voss
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 个)

类别

Help CenterFile Exchange 中查找有关 Dimensionality Reduction and Feature Extraction 的更多信息

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by