Filter löschen
Filter löschen

finding an output from a matrix using a single syntax

1 Ansicht (letzte 30 Tage)
Dwyane  Wade
Dwyane Wade am 13 Aug. 2011
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...

Akzeptierte Antwort

Paulo Silva
Paulo Silva am 13 Aug. 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 Kommentare
Dwyane  Wade
Dwyane Wade am 15 Aug. 2011
how did you get this?
Paulo Silva
Paulo Silva am 15 Aug. 2011
Please read what I said in your other similar question and also http://www.mathworks.in/help/techdoc/math/f1-85462.html

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (3)

Dwyane  Wade
Dwyane Wade am 13 Aug. 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 am 13 Aug. 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 am 13 Aug. 2011
a=spdiags(Q(end:-1:1,:))
a1=a(:,[3,9])
out=a1(a1~=0)
  1 Kommentar
Andrei Bobrov
Andrei Bobrov am 13 Aug. 2011
about logic:
a=spdiags(Q(end:-1:1,:))
a1=a(:,[0,size(Q,1)-1]+3)
out=a1(a1~=0)

Melden Sie sich an, um zu kommentieren.

Kategorien

Mehr zu Matrix Indexing finden Sie in Help Center und File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by