필터 지우기
필터 지우기

Three Loops with summation

조회 수: 1 (최근 30일)
Ali Kareem
Ali Kareem 2015년 10월 24일
댓글: Walter Roberson 2015년 10월 24일
Greeting,
I have matrix Z(30,70) and it repeated for 40 times each time there will be new value for each cell. This means for example Z(1,1) will have 40 different values. And the same for all cells in the matrix. My question how I can sum all 40 Z(1,1) for all values. I want to done this for each cell and save the result in matrix K(30,70)
Do I need to do three loops to accomplish that or there is another ways to do it.
Thank you in advance for all ideas.
Regards

답변 (2개)

Walter Roberson
Walter Roberson 2015년 10월 24일
If you have a cell array Z and you want sum each of the entries, then
cellfun(@sum, Z)
if you are expecting a 30 x 70 numeric array as output, and otherwise
cellfun(@sum, Z, 'Uniform', 0)
if you are expecting a 30 x 70 cell array as output.
  댓글 수: 2
Ali Kareem
Ali Kareem 2015년 10월 24일
Hello,
Thank you for your reply. Please I do not think my question was clear. Below what I want to do
for L=1:10
for i=1:20
for j=1:100
r=(Xc+Y)^(1/2);
VC=VCo*(1-(exp(-(r))));
Uf(i,j)=(((VC-Yc))/((pi)*(r)));
Vf(i,j)=((VC*r)*(Xc))/((2*pi));
Uft(i,j)=Uft(i,j)+Uf(i,j);
Vft(i,j)=Vft(i,j)+Vf(i,j);
Ufz(i,j)=(U-Uft(i,j))/U;
end;
end;
end;
I Want to have summation of Uft and Vft. so for the entire loops (i,j) I will get the first matrix (20,100) then after that for L loop I will get the other matrices. I want Uft(1,1) to add to the Uft(1,1) from old matrix until end of loop L (this mean for ten times)
this scenario for for new A(1,2)=old A(1,2) and so on
Walter Roberson
Walter Roberson 2015년 10월 24일
for L=1:10
for i=1:20
for j=1:100
r=(Xc+Y)^(1/2);
VC=VCo*(1-(exp(-(r))));
Uf(i,j)=(((VC-Yc))/((pi)*(r)));
Vf(i,j)=((VC*r)*(Xc))/((2*pi));
Uft(i,j,L)=Uft(i,j,L)+Uf(i,j);
Vft(i,j,L)=Vft(i,j,L)+Vf(i,j);
Ufz(i,j)=(U-Uft(i,j))/U;
end;
end;
end;
Now afterwards you can use
sum(Utf,3)
sum(Vtf,3)

댓글을 달려면 로그인하십시오.


Matt J
Matt J 2015년 10월 24일
편집: Matt J 2015년 10월 24일
You should be keeping your Z data as a 3D array of dimension 30x70x40. Then, it's as simple as
K=sum(Z,3);
Example,
>> Z=rand(30,70,40); K=sum(Z,3); whos K Z
Name Size Bytes Class Attributes
K 30x70 16800 double
Z 30x70x40 672000 double
  댓글 수: 1
Ali Kareem
Ali Kareem 2015년 10월 24일
편집: Walter Roberson 2015년 10월 24일
Hello,
Thank you for your reply.
for L=1:10
for i=1:20
for j=1:100
r=(Xc+Y)^(1/2);
VC=VCo*(1-(exp(-(r))));
Uf(i,j,L)=(((VC-Yc))/((pi)*(r)));
Uft= sum(Uf,3)/U
end;
end;
end;
I think my equation for sum is incorrect because I got wrong numbers
Regards

댓글을 달려면 로그인하십시오.

카테고리

Help CenterFile Exchange에서 Creating and Concatenating Matrices에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by