Filter löschen
Filter löschen

how can i write this matrix in matlab?

2 Ansichten (letzte 30 Tage)
mohammad azsad
mohammad azsad am 2 Nov. 2014
Kommentiert: dpb am 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

Akzeptierte Antwort

Rick Rosson
Rick Rosson am 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

Weitere Antworten (2)

dpb
dpb am 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 am 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 Kommentar
dpb
dpb am 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...

Melden Sie sich an, um zu kommentieren.

Community Treasure Hunt

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

Start Hunting!

Translated by