Create a matrix from another one with an history window of 3 columns

1 vue (au cours des 30 derniers jours)
Julien Benistant
Julien Benistant le 10 Jan 2020
Could someone help me with my problem.
I've got an original 2 by 25 matrix and I want to create a new 2 by 25 matrix with the same columns than the original one. But I want them reorganized such that a given column (:,n) in the new matrix is different from the columns (:,n:n+2) of the original matrix.
I've struggled to do that as Ifind a way using loops that need a lot of if statement to control for special cases... Is there someone with a simple(r) method to do that?
  4 commentaires
Stephane Dauvillier
Stephane Dauvillier le 13 Jan 2020
OK? sorry I don't know what you mean
Julien Benistant
Julien Benistant le 13 Jan 2020
Sorry I wasn't clear but I found a simple solution, I post it here in case of someone need help:
A= [1,3,5,7,8];
B = [4,12,20,28,32];
C = combvec(A,B);
S = randi([4 21],1);
V = [C(:,S:end), C(:,1:S-1)];
Basically I've just created a new matrix (V) randomly lagged (S) compared to the original one (C) !
Best,

Connectez-vous pour commenter.

Réponses (1)

Stephane Dauvillier
Stephane Dauvillier le 10 Jan 2020
You can try the function diff:
A = magic(5);
B = diff(A,[],2)
But B will have n-1 column what do you want for the extra column ?

Catégories

En savoir plus sur Loops and Conditional Statements dans Help Center et File Exchange

Produits


Version

R2015b

Community Treasure Hunt

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

Start Hunting!

Translated by