1 view (last 30 days)

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,

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

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)];

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

Start Hunting!
## 2 Comments

## Direct link to this comment

https://au.mathworks.com/matlabcentral/answers/501858-create-a-matrix-from-matrix-with-zeros-elements#comment_789723

⋮## Direct link to this comment

https://au.mathworks.com/matlabcentral/answers/501858-create-a-matrix-from-matrix-with-zeros-elements#comment_789723

## Direct link to this comment

https://au.mathworks.com/matlabcentral/answers/501858-create-a-matrix-from-matrix-with-zeros-elements#comment_790367

⋮## Direct link to this comment

https://au.mathworks.com/matlabcentral/answers/501858-create-a-matrix-from-matrix-with-zeros-elements#comment_790367

Sign in to comment.