Translating MATLAB code into C
    6 visualizaciones (últimos 30 días)
  
       Mostrar comentarios más antiguos
    
    Hiroshi Nakamura
 el 1 de Mzo. de 2015
  
    
    
    
    
    Editada: Hiroshi Nakamura
 el 1 de Mzo. de 2015
            Hello guys, I was just wondering if anyone can help translate my code into C as I don't have MATLAB Coder . I am more familiar with MATLAB's array indexing and I believe that C's array indexing is a little too complicated for a beginner like me. I'd appreciate it if you could walk me through the steps..
I am currently stuck at these two lines and I believe C won't allow me to do array indexing the same way MATLAB does:-
b = a(x:x+1, y:y+1);
a(x:x+1, y:y+1) = b;
Here is my entire code :-
a = [1 2 3 4; 2 3 4 5; 3 4 5 6; 4 5 6 7];
c = dctmtx(2);
q_mtx = [16 11; 12 12];
for x = 1:2:M
    for y = 1:2:N
          b = a(x:x+1, y:y+1); %<----HOW DO I DO THIS IN C???
          b = c*b*c';
          b = b./q_mtx ;
          a(x:x+1, y:y+1) = b; 
      end
  end
0 comentarios
Respuesta aceptada
  Walter Roberson
      
      
 el 1 de Mzo. de 2015
             for (xoff = 0, xoff <= 1, xoff++)
       for (yoff = 0, yoff <= 1, yoff++)
         b[yoff][xoff] = a[y+yoff][x+xoff];
That is, you use a loop. Unless you want to start into memcpy().
Notice that I reversed the order of the indices. C arrays are row-major instead of column-major.
0 comentarios
Más respuestas (1)
Ver también
Categorías
				Más información sobre Creating and Concatenating Matrices 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!

