0
votes

Comment construire manuellement la matrice Toeplitz dans Matlab

J'ai besoin de construire une matrice TOEPLITZ dans MATLAB appelé h , où h a la taille 256 x 256 , à partir d'un vecteur h de taille 64 x 1 . J'ai besoin de remplir la matrice h par la ligne l -th d'élément d'élément h et p -th colonnes éléments Comme ci-dessous:

H (l, p) = h (lp) si 0 <= (lp) = <64 . Sinon, h (l, p) = 0;

J'ai fait le code comme ci-dessous: xxx

mais je Pensez qu'il y a une erreur dans le code puisqu'il ne me donne pas les résultats escomptés.

Comment puis-je obtenir une matrice TOPLITZ?


0 commentaires

3 Réponses :



3
votes

Un problème se produit pour lp = 0 , car h (0) appellerait l'élément zeroth de h , et puisque MATLAB utilise 1 -Marbased Indexation, qui se bloque. Il suffit de supprimer le signe de l'égalité dans la vérification: xxx


0 commentaires

1
votes

Voici une façon manuelle qui utilise Vectorisation avec Expansion implicite au lieu de boucles:

t = 1:numel(h);
H = h(abs(t-t.')+1); 


0 commentaires