Insert Zeros in every n-rows at the regular interval in 3rd dimension for an existing 3D Matrix.

2 visualizzazioni (ultimi 30 giorni)
I have a m*n*t matrix. In 3rd dimension t, I want to insert m*n zeros at a particular interval. For example input
A(:,:,1) =
9 8 -8 -3
-3 -3 7 8
-3 -10 -1 8
10 5 -10 -10
4 7 11 13
A(:,:,2) =
14 9 7 5
3 5 2 11
15 12 15 8
7 10 9 5
14 4 15 13
A(:,:,3) =
14 17 17 15
13 21 21 19
15 21 17 17
14 21 18 13
17 16 13 17
A(:,:,4) =
14 21 15 19
15 12 20 11
15 5 4 9
7 6 15 16
3 2 17 10
result would be:
A(:,:,1) =
9 8 -8 -3
-3 -3 7 8
-3 -10 -1 8
10 5 -10 -10
4 7 11 13
A(:,:,2) =
14 9 7 5
3 5 2 11
15 12 15 8
7 10 9 5
14 4 15 13
A(:,:,3) =
0 0 0 0
0 0 0 0
0 0 0 0
0 0 0 0
0 0 0 0
A(:,:,4) =
0 0 0 0
0 0 0 0
0 0 0 0
0 0 0 0
0 0 0 0
A(:,:,5) =
14 17 17 15
13 21 21 19
15 21 17 17
14 21 18 13
17 16 13 17
A(:,:,6) =
14 21 15 19
15 12 20 11
15 5 4 9
7 6 15 16
3 2 17 10
A(:,:,7) =
0 0 0 0
0 0 0 0
0 0 0 0
0 0 0 0
0 0 0 0
A(:,:,8) =
0 0 0 0
0 0 0 0
0 0 0 0
0 0 0 0
0 0 0 0
Thanks!
  2 Commenti
Stephen23
Stephen23 il 24 Apr 2018
@Sunil Oulkar: I am impressed: how did you manage to define an array with four rows in the first page, six rows in the second page, and five rows in the third and fourth pages?

Accedi per commentare.

Risposta accettata

Matt J
Matt J il 24 Apr 2018
Modificato: Matt J il 24 Apr 2018
Assuming every page really is m x n (cf. Stephen's comment),
A=rand(3,4,6); %fake data
pattern=[1 1 1 0 0]; %insert zero every 4th and 5th page
[m,n,t]=size(A);
q=floor(t/nnz(pattern));
idx=repmat( reshape(pattern,1,1,[]) , 1,1,q)& true(m,n);
out=zeros(size(idx));
out(idx)=A(1:nnz(idx)),
results in
out(:,:,1) =
0.8147 0.9134 0.2785 0.9649
0.9058 0.6324 0.5469 0.1576
0.1270 0.0975 0.9575 0.9706
out(:,:,2) =
0.9572 0.1419 0.7922 0.0357
0.4854 0.4218 0.9595 0.8491
0.8003 0.9157 0.6557 0.9340
out(:,:,3) =
0.6787 0.3922 0.7060 0.0462
0.7577 0.6555 0.0318 0.0971
0.7431 0.1712 0.2769 0.8235
out(:,:,4) =
0 0 0 0
0 0 0 0
0 0 0 0
out(:,:,5) =
0 0 0 0
0 0 0 0
0 0 0 0
out(:,:,6) =
0.6948 0.0344 0.7655 0.4898
0.3171 0.4387 0.7952 0.4456
0.9502 0.3816 0.1869 0.6463
out(:,:,7) =
0.7094 0.6797 0.1190 0.3404
0.7547 0.6551 0.4984 0.5853
0.2760 0.1626 0.9597 0.2238
out(:,:,8) =
0.7513 0.6991 0.5472 0.2575
0.2551 0.8909 0.1386 0.8407
0.5060 0.9593 0.1493 0.2543
out(:,:,9) =
0 0 0 0
0 0 0 0
0 0 0 0
out(:,:,10) =
0 0 0 0
0 0 0 0
0 0 0 0

Più risposte (0)

Categorie

Scopri di più su Environment and Settings in Help Center e File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by