Borrar filtros
Borrar filtros

finding an output from a matrix using a single syntax

1 visualización (últimos 30 días)
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...

Respuesta aceptada

Paulo Silva
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
Dwyane  Wade
Dwyane Wade el 15 de Ag. de 2011
how did you get this?
Paulo Silva
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

Iniciar sesión para comentar.

Más respuestas (3)

Dwyane  Wade
Dwyane Wade el 13 de Ag. de 2011
Im not sure what the logic is, all I know is that we are required to find R = [33 9 30 74 -4 72 63 15] using a single syntax like: R = (solution) << something like this

Fangjun Jiang
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
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
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)

Iniciar sesión para comentar.

Categorías

Más información sobre Matrix Indexing en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by