merge two arrays into one
Ältere Kommentare anzeigen
i am trying to merge two arrays into one array.
The goal is to create a load cycle graph of a storage system.
One array is called "charge amount" and the other array is called "discharge amount".
for example:
charge amount = [ 1 2 3 4 5 0 0 0 0 0 1 2 3 4 5 .....]
discharge amount = [ 0 0 0 0 0 -1 -2 -3 -4 -5 0 0 0 0 0 .....]
how can i merge either one of the array into the other one where the value is zero (0)?
for example:
load cycle = [1 2 3 4 5 -1 -2- 3- -4 -5 1 2 3 4 5 .....]
thank you in advance.
1 Kommentar
Sehoon Chang
am 3 Jul. 2021
Akzeptierte Antwort
Weitere Antworten (1)
Yongjian Feng
am 3 Jul. 2021
Not sure what you really want.
- If those two arrays have the same length at the time, and if the ith element of one array is non-zero, the ith element of the other array is always 0 (just like those two you showed), then it is just as easy as merged = charge_amount+discharge_amount;
- If you need to put in extra logic then you can loop through those arrays:
charge_amount = [1 2 0 0 3 4];
discharge_amount = [0 0 5 6 0 0];
merged = zeros(1, length(charge_amount));
for i=1:length(charge_amount)
% put your logic here
% here assuming you sum them up only if one is zero, the other one is
% not
if (charge_amount(i) == 0 && discharge_amount(i) != 0) || (discharge_amount(i) == 0 && charge_amount(i) != 0)
% if one is zero and the other one is not, merge
merged(i) = charge_amount(i) + discharge_amount(i);
elseif charge_amount(i) == 0 && discharge_amout(i) == 0
% it doesn't make any difference sum them or not
else
% they are both non-zero, what do you want for this case?
end
end
Kategorien
Mehr zu Operators and Elementary Operations finden Sie in Hilfe-Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!