Changing matrix size in a loop

Hi , I need to calculate a 3D matrix , say A(v,n,i) , here is code
for n=1:5
for m=-n:n
for v=1:5
A(v,n,i)=% My Fucntion
A( ~any(A,2), :,: ) = [];
A( :, ~any(A,1),: ) = [];
end
end
end
I need to calculate A as a changing size according to m values, like if m=1 , A=10x10 , if m=2 , A=9x9 and same as for negative values of m. If I calculate A like my code , I can't get inverse of A for m>1 or m<-1. Also I tried to delete zeros columns and rows of A(:,:,i) but I couldn't do it because of 3D matrix. Thanks for any help.

3 Comments

Burak - please clarify what you mean by _ can't get inverse of A for m>1 or m<-1_. What is A when either of these conditions are true? How does A become a 3D matrix when you have already stated that if m=1, A=10x10, if m=2 , A=9x9?
Please don't post the same question twice: https://www.mathworks.com/matlabcentral/answers/332046-matrix-size-changing-in-a-loop. If you have not received a response to your question, the modify it so that it appears as a recent update (and so is at the "top" of the queue).
I did search my previous question in matlab and in my account tab , I couldn't find so I posted it again. Sorry. For my question , lets say
for n=1:5
m=-n:n;
for v=1:5
A(v,n,i)=v*n-m(i);
end
end
end
for i=1:11
Ai(:,:,i)=inv(A(:,:,i));
end
Like this I can't inverse it. I found a solution , I placed all A variables in a cell array then I removed zeros from it and I can inverse it in a cell array but it is really challenging , I am asking if there is another way to calculate A's in changing size in every loop. Thanks for the concern.
end

Answers (0)

This question is closed.

Asked:

on 26 Mar 2017

Commented:

on 27 Mar 2017

Community Treasure Hunt

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

Start Hunting!