Clear Filters
Clear Filters

create a matrix from matrix with zeros elements

5 views (last 30 days)
Ali Tawfik
Ali Tawfik on 24 Jan 2020
Answered: Sindar on 29 Jan 2020
I have a matrix obtained
A=[ 1 2 3 4;5 6 7 8;9 10 11 12; 13 14 15 16];
So I just would like to obtain another matrix but with some indexs (or elements ) and the rest is zeros
So I need the output matrix to be
O=[ 1 2 0 0 ;2 1 0 0 ;0 0 6 8;0 0 8 16]
So can anyone advise me with the best way ?
Thanks,
  2 Comments
Sindar
Sindar on 24 Jan 2020
what is the logic of which elements are zero, and what value the non-zero ones take?
Ali Tawfik
Ali Tawfik on 27 Jan 2020
Hi Sindar,
Thanks for your prompt reply.
Well ,I try to explain you more,
I had already a matrix, and I wanna create a new matrix based on matrix obtained earlier, then assign zeros in the matrix with some elements from the first matrix,
For example:
x=[1 2 3 4 5 6 ;
7 8 9 10 11 12;
13 14 15 16 17 18;
19 20 21 22 23 24;
25 26 27 28 29 30;
31 32 33 34 35 36]
Then, I wanna create Y as the following:
Y=[x(1,1) x(1,4) 0 0;
x(1,4) x(4,4) 0 0;
0 0 x(3,3) x(6,3);
0 0 x(6,3) x(6,6)]
I created zeros(4) so I have the new matrix, my question is how to assign some elements to the new matrix to create Y ???
Thanks,

Sign in to comment.

Answers (2)

Spencer Chen
Spencer Chen on 24 Jan 2020
You can create a new matrix of the same size:
B = zeros(size(A));
Then assign non-zero data in B.
Blessings,
Spencer
  1 Comment
Ali Tawfik
Ali Tawfik on 27 Jan 2020
Hi Spencer,
Thanks for your prompt reply.
I meant, I had already a matrix, and I wanna create a new matrix based on matrix obtained earlier, then assign zeros in the matrix with some elements from the first matrix,
For example:
x=[1 2 3 4 5 6 ;
7 8 9 10 11 12;
13 14 15 16 17 18;
19 20 21 22 23 24;
25 26 27 28 29 30;
31 32 33 34 35 36]
Then, I wanna create Y as the following:
Y=[x(1,1) x(1,4) 0 0;
x(1,4) x(4,4) 0 0;
0 0 x(3,3) x(6,3);
0 0 x(6,3) x(6,6)]
I created zeros(4) so I have the new matrix, my question is how to assign some elements to the new matrix to create Y ???
Thanks,

Sign in to comment.


Sindar
Sindar on 29 Jan 2020
I still don't quite see the pattern, but you can insert elements manually:
x=[1 2 3 4 5 6 ;
7 8 9 10 11 12;
13 14 15 16 17 18;
19 20 21 22 23 24;
25 26 27 28 29 30;
31 32 33 34 35 36];
Y = zeros(4);
Y(1,1) = x(1,1);
Y(1,2) = x(1,4);
Y(2,1) = x(1,4);
Y(2,2) = x(4,4);
Y(3,3) = x(3,3);
Y(3,4) = x(6,3);
Y(4,3) = x(6,3);
Y(4,4) = x(6,6);
% or
Y = zeros(4);
Y(1:2,1:2) = [x(1,1) x(1,4) ; x(1,4) x(4,4)];
Y(3:4,3:4) = [x(3,3) x(6,3) ; x(6,3) x(6,6)];

Categories

Find more on Resizing and Reshaping 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!