How to calculate the n period Element difference every in a matrix ?
4 views (last 30 days)
Show older comments
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 Comments
Answers (1)
Image Analyst
on 4 Apr 2019
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 Comments
See Also
Categories
Find more on Matrix Indexing in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!