I have 32x32 matrix...But I want to make this a 512x512 matrix with the same element as in the 32x32 matrix..and the rest of which would be zero in 512x512 matrix.. how do i do it??
Afficher commentaires plus anciens
I have 32x32 matrix...But I want to make this a 512x512 matrix with the same element as in the 32x32 matrix..and the rest of which would be zero in 512x512 matrix.. how do i do it??
Réponse acceptée
Plus de réponses (1)
Sudharsana Iyengar
le 18 Déc 2014
A=32x32 matrix
B=zeros(512)
for i= 1:32
for j=1:32
B(i,j)=A(i,j)
end
end
try this
3 commentaires
This answer is pretty poor use of MATLAB, particularly doing this inside multiple loops (it pays to learn about vectorization when using MATLAB), and using i and j as the loop variables can lead to weird problems as these are the names of the inbuilt imaginary unit .
The OP instead proposed using indexing to allocate all of the values in one go, which is a much faster and neater solution:
B = zeros(512);
B(1:32,1:32,:) = A;
For an even faster and neater solution read my answer.
Image Analyst
le 20 Déc 2014
Modifié(e) : Image Analyst
le 20 Déc 2014
sanik's "Answer" moved here:
Thank you so much...I just now tried this one:
B=zeros(512);
A=32x32;
B(1:32,1:32,:)=A;
and yea this is working too. Thanks...
Image Analyst
le 3 Jan 2015
I accepted Stephen's answer for you, since this was his idea. But I agree with him that the "trick" he used in his answer is preferable, though a little less explicit and obvious. Please give him reputation points by voting for his answer.
Catégories
En savoir plus sur Univariate Discrete Distributions dans Centre d'aide et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!