finding an output from a matrix using a single syntax
    7 visualizaciones (últimos 30 días)
  
       Mostrar comentarios más antiguos
    
Hi there guys I have a question. How do you get a single line output out of a matrix? for example here is the matrix:
Q =
    10    20    30    40    50    60    70
     8     9    10    11    12    13    14
    33    30    27    24    21    18    15
    28    35    42    49    56    63    70
    36    45    54    63    72    81    90
    -1    -2    -3    -4    -5    -6    -7
    64    69    74    79    84    89    94
and I am required to find:
R = [33 9 30 74 -4 72 63 15]
how do I get it using a single syntax? I've been struggling since I am just new into using Matlab. please help me...
1 comentario
Respuesta aceptada
  Paulo Silva
      
 el 13 de Ag. de 2011
        R=[Q(3:6:18) Q(21:6:45)]
Edit, there's one shorter version
R=Q([3:6:18 21:6:49])
3 comentarios
  Paulo Silva
      
 el 15 de Ag. de 2011
				Please read what I said in your other similar question and also http://www.mathworks.in/help/techdoc/math/f1-85462.html
Más respuestas (3)
  Fangjun Jiang
      
      
 el 13 de Ag. de 2011
        There is a way to select the element using logical index. It is like this:
Ind=false(size(Q));
Ind(3,1)=true;
Ind(2,2)=true;
Ind(1,3)=true;
Ind(7,3)=true;
R=Q(Ind)
You'll get the idea.
Or linear indexing
LinInd=[1 12 20 40];
S=R(LinInd)
0 comentarios
  Andrei Bobrov
      
      
 el 13 de Ag. de 2011
        a=spdiags(Q(end:-1:1,:))
a1=a(:,[3,9])
out=a1(a1~=0)
1 comentario
  Andrei Bobrov
      
      
 el 13 de Ag. de 2011
				about logic:
a=spdiags(Q(end:-1:1,:))
a1=a(:,[0,size(Q,1)-1]+3)
out=a1(a1~=0)
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!



