필터 지우기
필터 지우기

Loop and plot in 2D

조회 수: 5 (최근 30일)
Auryn_
Auryn_ 2018년 1월 26일
댓글: Auryn_ 2018년 1월 28일
Hi,
I have a variable V(a,b,c) where
a=1:50
b=a
c=1:100
Now I would like to make a loop and plot the following:
sum_a(V(a,a+r,:))
May I ask you to help me with this loop and the 2D plot?
I have tried with this:
M=50;
V_prev=zeros(a,b,c);
V=V_prev;
for ik=1:M
V(ik,:,:)=V+V(ik,:,:);
for r=50-1:-1:0
V(ik,ik+r,:)=sum(V(ik,ik+r,:));
end
end
Unfortunately it doesn't work.
Thanks in advance for your reply.
  댓글 수: 4
Jan
Jan 2018년 1월 27일
@Auryn_: I still do not get it. sum(M(:)) is the sum of all elements of the array M. Where does "l" come into play then?
If V is a V(a,a,b) array and you want to get the sum over all a, than you need:
sum(sum(V, 1), 2)
Auryn_
Auryn_ 2018년 1월 27일
Hi, I have corrected the main text. Hopefully is more clear now! Thanks.

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

채택된 답변

Image Analyst
Image Analyst 2018년 1월 27일
l is a terrible name for a variable. Anyway, you need to make sure a+l is not more than M
if (a+l) > M
break;
end
V(a,l,:)=sum(V(a,a+l,:));

추가 답변 (1개)

Auryn_
Auryn_ 2018년 1월 27일
편집: Jan 2018년 1월 28일
Now it works
for ik=1:a
for l=100-1:-1:0
ij=ik+l
if ij > a
break;
end
A(ik,ij,:)=V(ik,ij,:);
end
B(ik,:,:)=sum(A(ik,:,:));
end
  댓글 수: 2
Jan
Jan 2018년 1월 28일
Your code does not run: In the first iteration ik=1 and l=b-1 (did I told you already not to use "l" as name of a variable? It is a really serious advice.) ij is greater than a, such that A is not defined at all. Then the assignment to B fails with an error message.
Auryn_
Auryn_ 2018년 1월 28일
If we consider
a=1:100
and
a=b,
it works.
Thanks again for everything!

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

카테고리

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