Loop and plot in 2D

1 次查看(过去 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!

请先登录,再进行评论。

Community Treasure Hunt

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

Start Hunting!

Translated by