index exceeds matrix dimention
    4 visualizaciones (últimos 30 días)
  
       Mostrar comentarios más antiguos
    
the error is in the line i have the three asterisks i cant figure it out, please help
Q=[16 11 10 16 24 40 51 61
   12 12 14 19 26 58 60 55
   14 13 16 24 40 57 69 56
   14 17 22 29 51 87 80 62
   18 22 37 56 68 109 103 77
   24 35 55 64 81 104 113 92
   49 64 78 87 103 121 120 101
   72 92 95 98 112 100 103 99];
luma=double(luma);
luma=luma-128;
%dct
for i=1:8:size(luma,1)
     for j=1:8:size(luma,2)
      ***   dluma(i:i+7,j:j+7)=dct2(luma(i:i+7,j:j+7));
          temp(i:i+7,j:j+7)=dluma(i:i+7,j:j+7)./Q;
         temp1(i:i+7,j:j+7)=round(temp(i:i+7,j:j+7));
     end
end
1 comentario
  Mark Whirdy
      
 el 18 de Dic. de 2012
				please paste self-contained code with all variables defined to accommodate any would-be assisters,
P.S. "if true" is pointless
??? Undefined function or variable 'luma'.
Error in ==> Untitled2 at 12
    luma=double(luma);
Respuestas (3)
  Matt Fig
      
      
 el 18 de Dic. de 2012
        What is the Q doing there? We need to see code that we can copy/paste and it will run. So please fill in the missing variables by editing your question.
0 comentarios
  Image Analyst
      
      
 el 18 de Dic. de 2012
        
      Editada: Image Analyst
      
      
 el 18 de Dic. de 2012
  
      Change the lines to:
for i=1:8:size(luma,1)-7
     for j=1:8:size(luma,2)-7
so that i and j never actually hit the very end of the array. The problem is that if i and j are at the very end, then i+7 and j+7 will be past the end. Setting them to 7 less means that the loop will end before so that i+7 and j+7 will not exceed the end.
0 comentarios
Ver también
Categorías
				Más información sobre Matrix Indexing en Help Center y File Exchange.
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!