Creating a diagonal matrix

3 views (last 30 days)
Gratitude Kim
Gratitude Kim on 1 Aug 2017
Answered: Andrei Bobrov on 5 Aug 2017
Hi, I have written such codes.
Col=4;
Row=3
A1=zeros(Row,Col);
n = size(A1,1);
A1([1:n+1:end,n+1:n+1:end]) = 1
Output:
A1 =
1 1 0 0
0 1 1 0
0 0 1 1
I obtained output A1. Appreciate if you are able to help me to modify the code so it can become [1 1 1 0; 0 1 1 1]. Appreciate your kind assistance.
  1 Comment
Guillaume
Guillaume on 1 Aug 2017
It's unclear what you're asking. Wouldn't
A1 = [1 1 1 0; 0 1 1 1]
answer your question?
Note that your code makes a 3x4 matrix whereas you're now asking for a 2x4 matrix.

Sign in to comment.

Answers (2)

KSSV
KSSV on 1 Aug 2017
A1(3:end,:) = []

Andrei Bobrov
Andrei Bobrov on 5 Aug 2017
t = true(2,4);
out = tril(t,2) & triu(t);

Categories

Find more on Operating on Diagonal Matrices 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!