finding an output from a matrix using a single syntax
1 view (last 30 days)
Show older comments
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 Comment
Accepted Answer
Paulo Silva
on 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 Comments
Paulo Silva
on 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
More Answers (3)
Fangjun Jiang
on 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)
0 Comments
Andrei Bobrov
on 13 Aug 2011
a=spdiags(Q(end:-1:1,:))
a1=a(:,[3,9])
out=a1(a1~=0)
1 Comment
Andrei Bobrov
on 13 Aug 2011
about logic:
a=spdiags(Q(end:-1:1,:))
a1=a(:,[0,size(Q,1)-1]+3)
out=a1(a1~=0)
See Also
Categories
Find more on Operating on Diagonal Matrices in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!