How can I add variable amount of padding to each column in my matrix?

4 vues (au cours des 30 derniers jours)
Zuha Yousuf
Zuha Yousuf le 17 Mar 2020
Commenté : Jon le 24 Mar 2020
So suppose I have a matrix, which has 4 columns and 10 rows. (10 by 4). I want to introduce 1 zero at the beginning in column 1, 2 zeros at the beginning in column 2, 3 zeros at the beginning in column 3 and 4 zeros at the beginning in column 4. Is there a way to manipulate padarray to allow me to introduce variable number of zeros like this?
any help appreciated!!

Réponse acceptée

Jon
Jon le 17 Mar 2020
Modifié(e) : Jon le 17 Mar 2020
Try
Apad = tril(A,-1)
  7 commentaires
Zuha Yousuf
Zuha Yousuf le 19 Mar 2020
Wait can you see that properly? I'm uploading it again.
Jon
Jon le 24 Mar 2020
Hi Zuha, Sorry I haven't been on MATLAB answers for awhile. Just saw your follow up question. Here's one way to do what you are asking. Maybe there is a clever way to vectorize this and avoid the loop, but I think this will do the job. Be well
% example matrix to be padded
A = [2 5 8 11 14 17 20 23;
3 6 9 12 15 18 21 24;
4 7 10 13 16 19 22 25];
disp(A)
% define padding
nPad = [0 1 2 1 1 2 0 1]% npad(k) specifies number of zeros to pad the kth column in A
%loop to pad each column
for k = 1:length(nPad)
if nPad(k) > 0 % check if it needs padding
A(1:nPad(k),k) = 0;
end
end
disp(A)

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Logical dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by