Need the function to run multiple times and store each data point for each input variable
15 次查看(过去 30 天)
显示 更早的评论
The fucntion calculates the time spent on an excursion for a customer, but now that i have twenty customers. how can i call the function to calculate the time for each customer and store the data in my work space?
function time = getTimePerTrip(plane, customer, altitude)
Fleet = plane;
if customer.Weight > Fleet.WeightCapacity
warning('Weight exceeds plane capacity');
end
if customer.Experience == "Beginner"
t_spent = 30;
elseif customer.Experience == "Experienced"
t_spent = 10;
end
time_ascend = altitude/Fleet.LiftRate; % time taken to reach altitude
time_decend = 5*time_ascend; % time taken to decend to the ground
time = t_spent + time_decend + time_ascend; % total time
end
5 个评论
Pratik Chachad
2021-8-10
If my previous assumption is true, Something like this should work.
function time_array = getTimePerTrip(plane, customer, altitude)
Fleet = plane;
% This will be the 20 customers
all_customers = fieldnames(customer);
%Store the time results in an array with same size as no of customers
time_array = zeros(length(all_customers),1);
for i=1:length(all_customers)
current_customer = customer.(all_customers{i});
if current_customer.Weight > Fleet.WeightCapacity
warning('Weight exceeds plane capacity');
end
if current_customer.Experience == "Beginner"
t_spent = 30;
elseif current_customer.Experience == "Experienced"
t_spent = 10;
end
time_ascend = altitude/Fleet.LiftRate; % time taken to reach altitude
time_decend = 5*time_ascend; % time taken to decend to the ground
time_array(i) = t_spent + time_decend + time_ascend; % total time
end
end
回答(1 个)
Prahlad Gowtham Katte
2022-2-17
Hello,
I understood that you want to execute the same function for customer where it is a 1x20 struct array. The following function is a modified function which calculates time per customer and stores it as an array.
function alltime = getTimePerTrip(plane, customer, altitude)
Fleet = plane;
alltime=zeros(1,length(customer));
for i=1:length(customer)
current_customer=customer(i);
if current_customer.Weight > Fleet.WeightCapacity
warning('Weight exceeds plane capacity');
end
if current_customer.Experience == "Beginner"
t_spent = 30;
elseif current_customer.Experience == "Experienced"
t_spent = 10;
end
time_ascend = altitude/Fleet.LiftRate; % time taken to reach altitude
time_decend = 5*time_ascend; % time taken to decend to the ground
time = t_spent + time_decend + time_ascend; % total time
alltime(i)=time;
end
end
The following links can be helpful in learning more about structures.
Hope it helps
0 个评论
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Loops and Conditional Statements 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!