Creating a Matrix with for loop
2 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
I have a fairly large vector named blender (45,000+). I have extracted n elements for which blender is greater than b (irrelevant). Now my difficulty is the following:
I am trying to create a 21 x n matrix with each extracted element of blender plus 10 things before, and the 10 things after, hence the reason why each column is 21.
I have been trying variations of the following:
element=find(blender >= 120);
NewMatrix = zeros(21, length(element));
for i = 1:length(element)
k = element(i);
NewMatrix(:,i)= Matrix(blender(k-10:k+10));
end
then I want to plot one column of the matrix at the time when I hit Enter. This second part I can figure out later, but I would appreciate some help making the Matrix
Thanks
0 commentaires
Réponse acceptée
Cedric
le 16 Jan 2013
Modifié(e) : Cedric
le 16 Jan 2013
If I understand well and if you want to keep it simple with an explicit for loop, what you want to do is something like that I guess:
element=find(blender >= 120);
NewMatrix = zeros(21, length(element));
for ii = 1:length(element)
k = element(ii);
r = max(1, k-10) : min(length(blender), k+10) ; % Range of indices +/- 10
% limited to valid ids.
NewMatrix(1:length(r),ii) = blender(r); % Store blender on the
% valid range; next
% elements left to 0.
end
Cheers,
Cedric
Plus de réponses (0)
Voir également
Catégories
En savoir plus sur Statistics and Machine Learning Toolbox dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!