MATLAB Answers

Auryn_
0

Loop and plot in 2D

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 件のコメント

Auryn_
2018 年 1 月 27 日
Hi,
yes, it means
M = V(1:50, (1:50)+l, :).
If I sum
sum(M(:)) does it sum in all "l"?
Because I don't want to sum over all "l" but over all a=1:50.
Thank you very much and sorry for any confusion.
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_
2018 年 1 月 27 日
Hi, I have corrected the main text. Hopefully is more clear now! Thanks.

サインイン to comment.

2 件の回答

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,:));

  0 件のコメント

サインイン to comment.


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
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_
2018 年 1 月 28 日
If we consider
a=1:100
and
a=b,
it works.
Thanks again for everything!

サインイン to comment.



Translated by