MATLAB Answers

using parts of matrix with different sub-vectors (Matlab)

1 view (last 30 days)
Afluo Raoual
Afluo Raoual on 15 Jun 2021
Commented: Rik on 18 Jun 2021
Dear members
I have a vector V divided on sub-vectors
And I have also a matrix H divided on sub-matrices
I want shifting the sub matrices at each time with the sub-vectors
  1 Comment
Rik
Rik on 18 Jun 2021
I'm glad my answer helped you solve the problem. I'm less glad you decided to edit away parts of your question. I have put a copy of it below. Feel free to put it back the way it was.
using parts of matrix with different sub-vectors (Matlab)
Dear members
I have this vector V divided on sub-vectors:
And I have also this matrix H:
I have this parameters:
T=5, M=5, N=10
For the first part of the matrix which is in the green screen, I use the vector [V0 V1].
For the second part of the matrix which is in the orange screen, I use the vector [V1 V2].
For the third part of the matrix which is in the black screen, I use the vector [V2 V3].
It means for the first step I always work on the first N rows and N*2 columns. Then I shif the screen with M columns and N rows.
I tried to program that like this:
sz=numel(V);
q=sz/N;
for ess=1:q % q here = 3
if ess == 1
Hc = H(1:T*2,1:N*2); % Hc=H(1:10,1:20)
else if ess ==2
Hc = H(T+1:(T*2)+M,(T*2)+1:(T*2)+(N*2)); % Hc=H(6:15,11:30)
else
Hc = H((T*2)+1:end,(N*2)+1:end); % Hc=H(11:20,21:40)
end
But how can I program this loop in general way if I have a long vector V

Sign in to comment.

Accepted Answer

Rik
Rik on 16 Jun 2021
Shouldn't something like this work?
Hc = H((T*(ess-1))+1:end,((N*2)*(ess-1)+1:N);
  6 Comments
Rik
Rik on 18 Jun 2021
Since we were talking about rows and columns, and they are used to index the rows and columns I thought the names would be clear.

Sign in to comment.

More Answers (0)

Tags

Community Treasure Hunt

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

Start Hunting!