loop doesn't work
Mostrar comentarios más antiguos
Hello People :),
I have a 2464x220 matrix with 44 countries represented by 56 rows each and 5 columns each. I want to do some matrix mulitplication and sum the co2 emissions e11 +e21 in the end, but it calculates 44 times the same number(which is correct, but just for 1 country ) . It just gives me the first countries number and repeats it although i am trying to tell matlab to calcluate it for 44 different countries. I did the following:
kk=1:56:2464;
yy=1:5:220;
Co2_CB=ones([44,1]);
for j=kk
v=j+55;
r=yy;
q=r+4;
e11_j=sum(Q(j:v,r:q),'all');
e21_j=Q(1:2464,r:q);
e21_j(j:v,:)=[];
e21_j=sum(e21_j,'all');
Co2_CB(j)=e11_j+e21_j;
end
Co2_CB(Co2_CB==0)=[];
Co2_CB(Co2_CB==1)=[];
I dont understandt why matlab does not calculates the other 43 numbers.
Thanks in advance
6 comentarios
Walter Roberson
el 12 de Feb. de 2021
Your kk is not sequential so your for j=kk is not using sequential numbers, so your C02_CB(j) is not going to write to sequential locations.
It is not clear from your code what e11 and e21 are really supposed to represent. These lines,
e11_j=sum(Q(j:v,r:q),'all');
e21_j=Q(1:2464,r:q);
e21_j(j:v,:)=[];
e21_j=sum(e21_j,'all');
Co2_CB(j)=e11_j+e21_j;
are equivalent to the single line of code
Co2_CB(j)=sum(Q(:,r:q),'all')
So, the partitioning into e11 and e21 is inconsequential in what you have posted for us thus far.
Victoria Pake
el 12 de Feb. de 2021
But if e11_j is the total emission from the j-th country and e21_j is the total emission from every other country, then the sum e11_j+e21_j will simply be the total emission from all countries. There is no real j-dependence in e11_j+e21_j .
Victoria Pake
el 12 de Feb. de 2021
Victoria Pake
el 12 de Feb. de 2021
Respuesta aceptada
Más respuestas (0)
Categorías
Más información sobre MATLAB en Centro de ayuda y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!