What does this function do in matlab?

Say I have D = D(somevector);
and A = A(:,somevector);
Does the former make this a column? What is it doing if not? Does the latter make a matrix A in some arrangement?
Please provide a link to where I can read more about this. I have been web surfing for too long.
Cheers, Neo!

 Accepted Answer

James Tursa
James Tursa on 2 Feb 2016
Edited: James Tursa on 2 Feb 2016
See the link on indexing:
In particular, if you supply only one subscript as in your first example, then MATLAB will use what is known as "Linear Indexing" in the link, and give you a column vector as a result with the elements being composed of the linear indexed elements you specified with somevector.
In your second example, you supplied two indexes. The result will be a sub-matrix composed of all the rows (via the : supplied for the first index), and the columns supplied by your somevector.

3 Comments

The first syntax
D = D(somevector)
would typically be used for either selecting only a portion of D, or for re-arranging D. For example,
D = D([3 1 2])
would be the same as
D = [D(3), D(1), D(2)]
(except that it has some subtle issues about whether a row vector or column vector is produced.)
Occasionally, not often, you might see the same subscript repeated, like
D = D([1 1 1])
This is making copies of that element, like [D(1), D(1), D(1)], which would be like repmat(D(1),1,3) . Indeed, repmat() is programmed by repeated subscripts.
Thanks Walter. I would've accepted your answer but you left it as a comment!
-Cheers Neo
Thanks James!

Sign in to comment.

More Answers (0)

Categories

Tags

Asked:

Neo
on 2 Feb 2016

Commented:

Neo
on 3 Feb 2016

Community Treasure Hunt

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

Start Hunting!