finding an output from a matrix using a single syntax
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
Fangjun Jiang
el 13 de Ag. de 2011
What is the logic? How do you make the selection?
Respuesta aceptada
Más respuestas (3)
Dwyane Wade
el 13 de Ag. de 2011
0 votos
1 comentario
Paulo Silva
el 13 de Ag. de 2011
The values are clearly in diagonals / , see my answer.
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)
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)
Categorías
Más información sobre Matrix Indexing en Centro de ayuda y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!