finding an output from a matrix using a single syntax
Afficher commentaires plus anciens
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 commentaire
Fangjun Jiang
le 13 Août 2011
What is the logic? How do you make the selection?
Réponse acceptée
Plus de réponses (3)
Dwyane Wade
le 13 Août 2011
0 votes
1 commentaire
Paulo Silva
le 13 Août 2011
The values are clearly in diagonals / , see my answer.
Fangjun Jiang
le 13 Août 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
le 13 Août 2011
a=spdiags(Q(end:-1:1,:))
a1=a(:,[3,9])
out=a1(a1~=0)
1 commentaire
Andrei Bobrov
le 13 Août 2011
about logic:
a=spdiags(Q(end:-1:1,:))
a1=a(:,[0,size(Q,1)-1]+3)
out=a1(a1~=0)
Catégories
En savoir plus sur Matrix Indexing dans Centre d'aide et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!