Integrating cell2mat array

13 vues (au cours des 30 derniers jours)
Edwin Espin
Edwin Espin le 21 Avr 2021
Commenté : Edwin Espin le 21 Avr 2021
Hello, I have the message attached below and after I tried to use a function to integrate and sum two arrays that were converted from cells in a different code, how could I solve this? and is it possible to not use a function and instead use it directly the integration in the other code with that two cell2mat arrays? I appreciate any help.
function ECC = energy_consumption(ECC_1,ECC_2)
syms tt
ECC_1 = @(tt) ECC_1.*tt;
ECC_2 = @(tt) ECC_2.*tt;
ECC11 = int(ECC_1,5,10);
ECC22 = int(ECC_2,0,5);
[ECC] = ECC11 + ECC22;
end
Check for missing argument or incorrect argument data type in call to function 'int'.
Error in energy_consumption (line 6)
ECC11 = int(ECC_1,5,10);
Error in Electrical_Power_VMP_Kp_2 (line 147)
ECC(c) = energy_consumption(ECC_1,ECC_2)
  2 commentaires
Jonas
Jonas le 21 Avr 2021
if you want to integrate a vector you can use cumsum()
Edwin Espin
Edwin Espin le 21 Avr 2021
thanks for your answer but I had to used each element individually

Connectez-vous pour commenter.

Réponse acceptée

Walter Roberson
Walter Roberson le 21 Avr 2021
function ECC = energy_consumption(ECC_1,ECC_2)
syms tt
ECC_1t = ECC_1.*tt;
ECC_2t = ECC_2.*tt;
ECC11 = int(ECC_1t, tt, 5,10);
ECC22 = int(ECC_2t, tt, 0,5);
[ECC] = ECC11 + ECC22;
end
Note that the result in ECC will be symbolic unless you convert it to double.
However, if the inputs ECC_1 and ECC_2 are numeric, then the integral of numbers times tt over a range of tt, can be calculated directly without any symbolic work:
int(NUMBER*tt, tt, A, B)
would be
(B^2-A^2)/2 * NUMBER
so
EC11 = (100-25)/2 * ECC_1;
EC21 = (25-0)/2 * ECC_2;
  1 commentaire
Edwin Espin
Edwin Espin le 21 Avr 2021
Thank you very much you answered my question

Connectez-vous pour commenter.

Plus de réponses (0)

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by