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

조회 수: 6 (최근 30일)
Zuha Yousuf
Zuha Yousuf 2020년 3월 17일
댓글: Jon 2020년 3월 24일
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!!

채택된 답변

Jon
Jon 2020년 3월 17일
편집: Jon 2020년 3월 17일
Try
Apad = tril(A,-1)
  댓글 수: 7
Zuha Yousuf
Zuha Yousuf 2020년 3월 19일
Wait can you see that properly? I'm uploading it again.
Jon
Jon 2020년 3월 24일
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)

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Creating and Concatenating Matrices에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by