MATLAB Answers

0

How can I use each element from an Array to substract other elements from other arrays and create new matrix?

Asked by Vlorjan Badallaj on 15 May 2018 at 11:46
Latest activity Commented on by Jan
on 20 May 2018 at 21:53

Hi there! I am new to Matlab.

I have create a structArray with Different EV`s and I want to compare them both using distances I have on other matrixes

Here you see the structArray I have created of my EV`s:

EV(1).name = 'Nissan Leaf 24 kWh pack'
EV(1).RangeInKM= 199
EV(2).name = 'Nissan Leaf 30 kWh pack'
EV(2).RangeInKM = 250

And here I have 2 arrays with distance to a Specific place from random starting places.

KM_to_Durres = [13.7; 13.3; 12.7; 11.3; 7.4; 6.1; 8.7; 14.4; 16.4; 21.2; 23.4; 21.3; 18.5; 17.1; 22.2;]                  
KM_to_Fier= [8.7;  8.7;  8.1;  9.3;  13.9; 17.5; 9.7; 8.4; 4.8; 4.1; 6.7; 1;  7.9; 10.2; 18.2; ]

How can I Iterate through these 2 arrays and subtract the numbers from EV(1).RangeInKM and EV(2).RangeInKM and then create a new array with the result?

Thank you.

  0 Comments

Sign in to comment.

1 Answer

Answer by Guillaume
on 15 May 2018 at 11:59
Edited by Guillaume
on 15 May 2018 at 12:00
 Accepted Answer

distances = [KM_to_Durres, KM_to_Fier];
remainingrange = arrayfun(@(s) s.RangeInKM - distances, EV, 'UniformOutput', false)

This returns a cell array where each cell corresponds to the correspond EV element.

Or you can use an explicit loop:

remainingrange = cell(size(EV));
for evidx = 1:numel(EV)
    remaingrange{evidx} = EV(evidx).RangeInKM - distances;
end

Both achieve the same result.

  11 Comments

Okay boss, So now I have added a couple of EV`s into my EV matrix containing some information about each EV by manufacturer, I also added multiple districts to my districts array(For personal reason I dont want to include all names).

  • Question 1: Is it possible to create with random picking of some of these destination, and then show a "remaining_range" table of all EV?
  • Question 2: Is it also possible to create a matrix with battery-status (SOC-table) for all EV after a random destination? e,g:(remaining_range/RangeInKM_By_Manufacturer * 100) gives you the current battery status after reaching a destination.
  • Question 3: Is it possibble to group some of the districts into a new array/matrix? e,g dist17, dist18, dist19 are district with hotspots/tourist attractions.

My EV matrix as per now:

EVs = {'Nissan Leaf 24 kWh pack', 'Nissan Leaf 30 kWh pack', 'Volkswagen e-Golf','Tesla Model S 90(D)','BMW i3 22kWh','BMW i3 33 kWh','KIA SOUL','Volkswagen e-Up(2016)','Renault ZOE R90 Z.E 40','Hyundai IONIQ','Mercedes-Benz B250E','Tesla model X 90D'};
RangeInKM_By_Manufacturer = [199 250 300 557 190 300 250 160 403 280 200 489];
RangeInKM_Winter =[100 125 200 453 80  125 150 120 311 160 120 435];
RangeInKM_Summer =[150 200 300 525 160 200 220 165 403 240 200 489];
Battery_Capacity =          [21.6 27.2 31.5 82 18.8 27.2 30 16.8 41 28 32 0]
Battery_Warranty_KM =  [100000 160000 160000 160000 100000 100000 150000 160000 160000 200000 100000 999999]
Battery_Warrany_Year = [5 8 8 8 8 8 7 8 8 8 8 8 ]
EnginePower_Kw = [80 80 100 310 125 125 81 60 68 88 180 311]
EnginePower_hK = [109 109 136 422 170 170 110 82 92 120 340 411]
Torque_in_NewtonMeter = [254 254 290 660 250 250 250 210 225 295 295 600]
QuickCharging_type = {'CHAdeMO','CHAdeMO','Combo','Supercharger', 'Combo(CCS)','Combo(CCS)','CHAdeMO','Combo(CCS)', 'DC quick-charging not possible','Combo(CCS)','DC quick-charging not possible', 'Supercharger'  };
QuickChargingEffect_kW_DC = [50 50 40 135 50 50 100 40 0 70 0 132 ]
NormalCharging_OnBoard_kW_AC = [3.3 6.6 7.2 11 3.7 7.4 6.6 3.3 22 6.6 11 11];
TopSpeed_KM_per_hour = [144 144 150 250 150 150 145 130 135 165 160 250]
Acceleration_0to100KM_per_hour = [11.5 11.5 9.6 4.4 7.3 7.3 11.2 12.4 13.2 9.9 7.9 3.9] 
RangeInKM_By_Manufacturer_RANK = [10 8 4 1 11 5 7 12 3 6 9 2]

My district matrix: I have problems putting all my distances here, so I put a picture instead of code:

[MOVED from flags] Vlorjan Badallaj wrote:

Trying to improve slowly and slowly

@Vlorjan Badallaj: Please use flags only to inform admins and editors about inappropriate content like spam or rudeness. Thanks.

Sign in to comment.


Discover what MATLAB® can do for your career.

Opportunities for recent engineering grads.

Apply Today