How can I add variable amount of padding to each column in my matrix?
2 ビュー (過去 30 日間)
古いコメントを表示
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!!
0 件のコメント
採用された回答
Jon
2020 年 3 月 17 日
編集済み: Jon
2020 年 3 月 17 日
Try
Apad = tril(A,-1)
7 件のコメント
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 Center および File Exchange で Operating on Diagonal Matrices についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!