how can i write this matrix in matlab?
1 view (last 30 days)
Show older comments
how can i write this matrix in matlab? this matrix is (n+1)*(n+1) that n must be enter by user
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/145932/image.jpeg)
0 Comments
Accepted Answer
Rick Rosson
on 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,k–1:k+1) = [ 1 4 1 ];
end
0 Comments
More Answers (2)
dpb
on 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
0 Comments
Image Analyst
on 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 Comment
dpb
on 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...
See Also
Categories
Find more on Matrices and Arrays in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!