Need the function to run multiple times and store each data point for each input variable
    3 Ansichten (letzte 30 Tage)
  
       Ältere Kommentare anzeigen
    
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 Kommentare
  Pratik Chachad
 am 10 Aug. 2021
				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
Antworten (1)
  Prahlad Gowtham Katte
    
 am 17 Feb. 2022
        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 Kommentare
Siehe auch
Kategorien
				Mehr zu Loops and Conditional Statements finden Sie in Help Center und File Exchange
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!



