Upsampling a matrix with zero elements
13 次查看(过去 30 天)
显示 更早的评论
I have a matrix x = [1 2 3 4; 5 6 7 8] and I want to upsample it by 2 so it goes something like x = [1 0 2 0 3 0 4 0; 0 0 0 0 0 0 0 0; 5 0 6 0 7 0 8 0; 0 0 0 0 0 0 0 0]
Any suggestion??
0 个评论
回答(3 个)
Dyuman Joshi
2024-1-31
编辑:Dyuman Joshi
2024-1-31
%input
x = [1 2 3 4; 5 6 7 8]
%Upsample factor
n=2;
%preallocate the output matrix
y = zeros(n*size(x));
%assign values
y(1:n:end,1:n:end) = x
Anjaneyulu Bairi
2024-1-31
编辑:Anjaneyulu Bairi
2024-1-31
Hi,
You can follow the below steps to upsample the matrix by 2.
- Create a matrix with a double number of rows and columns with all zeros.
- Now iterate over this new matrix, and for every odd iteration and odd position, assign the original matrix value.
Code for reference
x = [1 2 3 4;5 6 7 8];
[rows, cols] = size(x);
% Initialize the matrix with double number of rows and columns
new_matrix = zeros(rows * 2, cols * 2);
% Copy elements from the original matrix 'x' to the new matrix
for i = 1:rows
for j = 1:cols
new_matrix(2*i-1, 2*j-1) = x(i, j);
end
end
Hope it helps to resolve your query.
0 个评论
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!