How to display two non-consecutive column vectors

m = [2 3 4; 5 6 7; 8 9 10]
I know how to display 1:3 or 2:3,
b = m(:,1:3)
but I am having difficulties when trying to display just first and third, not to mention when there are more columns.

8 Comments

2 3 4
m = 5 6 7
8 9 10
For your given matrix 'm', lets index the 1st and 3rd element of 2nd column (i.e, 3 and 9) and assign it variable 'x'
so,
x = m([1,3],2)
Thanks kumar it is very helpful
Thanks! I had the same question
Does my answer appropriate with your requirement?
b = m(:,1:2:3)

Sign in to comment.

 Accepted Answer

Use
b = m(:,[1,3])

1 Comment

Thanks for the answer; it would be good if the tutorial by this point had highlighted where to use [ ] over ( ), as it's not been completely clear about it so far. (I tried many solutions including yours but used ( ) instead of [ ])

Sign in to comment.

More Answers (6)

Try extracting the first, third, and sixth elements of density.
density=[1.4 1.8882 3.090909 4.377 5.090 6.888 7.939 8.98989 9.1225 10.36369]'
%transposed
p=density([1 3 6],:)
p
The answer is
1.4
3.090909
6.888
this is how you extract non consequtive indices in a column

5 Comments

Why did you transpose it?
Can it be accomplished without transposing it?
Clearly its mentioned that the values should be extracted from a column vector. By default an array is stored as a row vector in Matlab
Thank you. I've been struggling with that one. I realized that I didn't need to transpose it nor add the comma (,) and colon (:) to get it right. I'm still learning but I'm guessing it's because we had already assigned density to only the 2nd colum of the matrix (That's if they're referring to the further practice of section 5.2)
Thanks for the help, I was getting pretty frustrated with this part.
This would have been nice for the tutorial to explain rather than just tell you to do it.
Agreed - at this point the course has not actually distinguished between the purposes of ( ) vs [ ], I tried all the combinations of the above but not using square brackets. Very frustrating.

Sign in to comment.

Indices can be non-consecutive numbers. Try extracting the first, third, and sixth elements of density.
Indices can be non-consecutive numbers. Try extracting the first, third, and sixth elements of density.
y = density([1 3 6],:)
Indices can be non-consecutive numbers. Try extracting the first, third, and sixth elements of density.
p = density([1,3,6])
for non-consecutive numbers

1 Comment

As density is a vector, this seems to be the correct solution, it certainly worked for me.

Sign in to comment.

density=[1.4 1.8882 3.090909 4.377 5.090 6.888 7.939 8.98989 9.1225 10.36369]'
p = density([1,3,6], end)
p = density([1,3,6], :)
basically what is diff between line 2 & 3 ?

1 Comment

I think the diff between line 2 and three is:
-in line 2 you are extracting the 1st, the 3rd and the 6th element of the last column of density
-in line 3, you are extracting the 1st, the 3rd and the 6th element of all columns in density
In this case, the result doesn't change, since density is a vector and not a matrix.
I'm not sure about this, but i think this is the diff.

Sign in to comment.

b = density([1,3,6],:)

1 Comment

How’s it different from the above answers?

Sign in to comment.

I used:
y = density(1:2:6)
Then I did a Google search to see how everyone else solved this Further Practice question and it seems I went a whole different route.

1 Comment

no thats wrong i think your commande will create a vector named Y and containing the first, 3th and the 5th elements and not the 6th
to resolve the probleme, you need to use this type of commande
y = density([1 3 6]);
good luck

Sign in to comment.

Products

Tags

Community Treasure Hunt

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

Start Hunting!