How to calculate the n period Element difference every in a matrix ?
4 ビュー (過去 30 日間)
古いコメントを表示
Hello. I have a matrix A, of size n x m, and second matrix of prices, matrix B same size.
I wish to find the difference between each element n periods apart in each colum of matrix A So I start from the last row and subtract the element 19 rows prior. This window should then move up one,.....a moving window
I then want to divide the resulting matrix of differences by the equivalent row of matrix B. Matrix B will of course be same dimension as resulting matrix. So we index into matrix B to extract a matrix which is 19 rows short from the top.
To do part 1, I found this and I am trying to understand and adapt it. I feel I could use the arrayfun function...but not 100 per cent sure how.
N = 19; diffmatrix = arrayfun(@(i) diff(a(i:i+n+1), a(i:i+n-1))
0 件のコメント
回答 (1 件)
Image Analyst
2019 年 4 月 4 日
Use conv() with a kernel that's like a column vector of [1;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;-1] (start with 1, then 17 zeros, then -1). Use the 'valid' option.
0 件のコメント
参考
カテゴリ
Help Center および File Exchange で Matrix Indexing についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!