loop doesn't work

3 visualizaciones (últimos 30 días)
Victoria Pake
Victoria Pake el 12 de Feb. de 2021
Comentada: Victoria Pake el 12 de Feb. de 2021
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
Victoria Pake
Victoria Pake el 12 de Feb. de 2021
it worked now, it was somethin with the sequence
Victoria Pake
Victoria Pake el 12 de Feb. de 2021
thanks all of you

Iniciar sesión para comentar.

Respuesta aceptada

Matt J
Matt J el 12 de Feb. de 2021
Editada: Matt J el 12 de Feb. de 2021
Note that you can use sepblockfun
to do blockwise summation over the 56x5 sub-tiles of Q.
E11=sepblockfun(Q,[56,5],'sum')
This might make it easier to see how to get the restof what you want.
  1 comentario
Victoria Pake
Victoria Pake el 12 de Feb. de 2021
Hey Matt,
Thanks for your anwser, but i think the main problem is the e21, because i did a different method and it worked:
tt=1:56:2464;
pp=1:5:220;
Co2_PB=ones([44,1]);
for i=tt;
o=i+55;
p=pp;
q=p+4;
e11_j=sum(Q(i:o,p:q),'all');
e12_i=sum(Q(i:o,1:220));
e12_i(:,p:q)=[];
e12=sum(e12_i,'all');
Co2_PB(i)=sum(e11_j+e12,'all');
end
Co2_PB(Co2_PB==0)=[];
Co2_PB(Co2_PB==1)=[];
since the e11 is the same under both methods, i dont get what the problem is.

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre MATLAB en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by