Effacer les filtres
Effacer les filtres

how can i write this matrix in matlab?

2 vues (au cours des 30 derniers jours)
mohammad azsad
mohammad azsad le 2 Nov 2014
Commenté : dpb le 3 Nov 2014
how can i write this matrix in matlab? this matrix is (n+1)*(n+1) that n must be enter by user

Réponse acceptée

Rick Rosson
Rick Rosson le 2 Nov 2014
x = zeros(n+1);
x(1,1:2) = [ 2 1 ];
x(end,end-1:end) = [ 1 2 ];
for k = 2:n
x(k,k1:k+1) = [ 1 4 1 ];
end

Plus de réponses (2)

dpb
dpb le 2 Nov 2014
Given input n and
r = [1 4 1];
c={repmat(r,n,1)}; % cell array of n copies of r
m=blkdiag([2 1],c{:},[1 2]); % expand c to comma list for blkdiag
clear c

Image Analyst
Image Analyst le 2 Nov 2014
Lots of ways, for loop, addition, assignment, zeros(), etc. I'd probably use eye() and circshift(). Hint:
diagArray = 4 * eye(7)
See what that gives you. Imagine shifting some diagonal arrays with circhsift() and adding the 3 arrays together. That should be enough hint to get you started.
  1 commentaire
dpb
dpb le 3 Nov 2014
I thought the blkdiag solution kinda' cute, IA... :)
Excepting for needing the temporary cell array; couldn't see a simple way to generate the comma-separated list in one swell foop...

Connectez-vous pour commenter.

Catégories

En savoir plus sur Logical 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!

Translated by