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

1 回表示 (過去 30 日間)
Julien Benistant
Julien Benistant 2020 年 1 月 10 日
コメント済み: Julien Benistant 2020 年 1 月 13 日
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 件のコメント
Stephane Dauvillier
Stephane Dauvillier 2020 年 1 月 13 日
OK? sorry I don't know what you mean
Julien Benistant
Julien Benistant 2020 年 1 月 13 日
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,

サインインしてコメントする。

回答 (1 件)

Stephane Dauvillier
Stephane Dauvillier 2020 年 1 月 10 日
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 ?

カテゴリ

Help Center および File ExchangeLoops and Conditional Statements についてさらに検索

製品


リリース

R2015b

Community Treasure Hunt

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

Start Hunting!

Translated by