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??
Mostra commenti meno recenti
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??
Risposta accettata
Più risposte (1)
Sudharsana Iyengar
il 18 Dic 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 Commenti
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
il 20 Dic 2014
Modificato: Image Analyst
il 20 Dic 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
il 3 Gen 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.
Categorie
Scopri di più su Logical in Centro assistenza e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!