Need Help Forming a Matrix from an Array

so i have an array that is (4051x1), called xvoltage, and I need to form a matrix with this vector only, I want to do something like a sliding window, that the first row are samples 2650:2655, and then the second row world be from 2651:2656 , and so on successively, can someone help me out i'm stuck , it just keeps repeating the same values forming a five by five matrix.
for p=1:5
for q=1:5
xV(p,q)=xvoltage(2650+q);
end
end

 采纳的回答

You could use hankel. Where A is your 4051x1 array:
hankel(A(2650:end-4),A(end-4:end))

3 个评论

thanks! I just modified it a little bit, to get a specific amount of data 5X5 matrix and then a 200 X 200 , this helped me alot, would it have been hard doing this with a for cycle?
" would it have been hard doing this with a for cycle?"
Something like this perhaps (untested):
V = [rows that you want to get];
C = 5; % number of columns
N = numel(V);
M = nan(N,C);
for k = 1:N
M(k,:) = A(V(k)+(0:C-1));
end
thanks ,i just tested it, and subtracted both matrices from different methods to double check they were the same and boom, they were , thanks a bunch!

请先登录,再进行评论。

更多回答(0 个)

类别

帮助中心File Exchange 中查找有关 Creating and Concatenating Matrices 的更多信息

标签

Community Treasure Hunt

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

Start Hunting!

Translated by